標(biāo)題: 請問SD卡升級后有時會跳錯誤中斷是什么原因? [打印本頁]

作者: billaj    時間: 2024-8-19 12:07
標(biāo)題: 請問SD卡升級后有時會跳錯誤中斷是什么原因?
各位大佬好,小弟遇到一個關(guān)于升級的問題卡BUG了,沒有方向,煩請各位指點一下,我原來的程序是沒有SD卡升級功能的,現(xiàn)在增加SD卡升級功能,我第一次搞SD卡升級,按照我理解應(yīng)該是可以將原程序當(dāng)APP直接定義為Start地址就可以,然后Boot Loader直接跳到這個地址就可以,但很奇怪的是,在升級APP程序后會跳進Boot Loader 的HardFault_Handler中斷處理,我常試屏掉我原來的主程序,APP程序只閃一個燈,升級后又能正常跳轉(zhuǎn)閃燈了,請問一下各位大佬,有沒有什么方向讓我去查查的,因這個問題無法通過仿真看為什么不行,真沒頭緒了
我用STM32F103RCT6,是256K的
Boot Loader的IROM1:定義為Start:0x8000000,Size:0x40000     
APP的IROM1:定義為Start:0x800C800,Size:0x25800  
拜謝各位大佬

作者: 123156fsadf    時間: 2024-8-21 10:58
1、Boot檢測到SD卡中有新APP,就將APP從SD卡中復(fù)制到你的APP IROM1空間,一定要先擦除APP IROM1的Flash后再從SD卡中復(fù)制新的程序。
2、將APP復(fù)制完之后,要將Boot中啟用的一些外設(shè)恢復(fù)初始化,或者你直接軟復(fù)位一下也行。
3、可以將升級后的flash內(nèi)容讀取出來,與APP文件進行對比,看是否完整復(fù)制到APP空間中
4、檢查APP文件的地址是否正確
5、可以將APP改為簡單功能的測試軟件,先把升級功能搞定,然后再排查是否APP中有代碼出現(xiàn)問題了
作者: billaj    時間: 2024-8-26 20:34
123156fsadf 發(fā)表于 2024-8-21 10:58
1、Boot檢測到SD卡中有新APP,就將APP從SD卡中復(fù)制到你的APP IROM1空間,一定要先擦除APP IROM1的Flash后再 ...

我之前已經(jīng)試過APP程序只閃一個燈,升級是無問題的,但只要是用到我的主程序就會在升級后的跳轉(zhuǎn)APP程序那一句跳中斷錯誤,我會按你的步驟再試試,謝謝你的回答
作者: billaj    時間: 2024-9-13 15:55
我算是找到問題點了,就是讀SD卡寫FLASH時,地址寫了64K后就不寫了,見鬼,我后面把APP地址改為0x8010000,當(dāng)寫到0x8020000開始就沒有數(shù)據(jù)了,估計就是這個原因在跳轉(zhuǎn)時報錯了,我抓取寫時的地址,明明是有把0x8020000后的地址傳過去的,就是沒寫,等我再找找原因
作者: billaj    時間: 2024-9-18 14:49
原因正是0x8020000開始打后的地址全寫不了,暫不知道為什么,我把地址往前移,避免用到0x8020000之后的地址,先湊合著用,日后再找原因
作者: 123156fsadf    時間: 2024-9-18 16:37
billaj 發(fā)表于 2024-9-18 14:49
原因正是0x8020000開始打后的地址全寫不了,暫不知道為什么,我把地址往前移,避免用到0x8020000之后的地址 ...

你確定你的芯片是256K的嗎?0x8020000正好是128K哎,或者你后128Kflash沒有擦除就在寫了么?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1