今天繼續研究BOOTLOAD內容,前兩天已經把單區BOOTLOAD研究完了,今天開始研究雙區下載,雙區優點在於下載程式時不怕因為斷電下載失敗而導致程式當機,可以繼續執行上一次的APP程式,但是會消耗更多的FLASH空間,正常雙區構想是將FLASH空間分為三部分,依次為BOOT、APP1、APP2,下載時先把程式下載到APP2區進行備份,下載完畢後對程式大小進行校驗,校驗透過後,再將APP2區的程式碼複製到APP1區執行,至此升級過程完成。
還看到了另一種的雙區做法,就是主控晶片FLASH空間不夠備份時,可以把程式下載到模組中,如wifi模組,在模組中快取下來,下載完成後再複製到APP區。
今天研究SC92系列雙區做法,把主控晶片空間壓縮,分為兩個APP區,每個5k大小,嘗試雙區升級。做法為上電執行BOOOT自檢,檢查EEPROM空間內容,00H存APP1資訊,01H存APP2資訊;若檢查結果為APP2為更新完成標誌,此時將APP1狀態更新為更新中標誌,再執行復製程式,將APP2程式區間內容複製到APP1區間內,複製完成後,再將APP1狀態更新為更新完成標誌,APP2狀態更新為更新中標誌,復位重新自檢,此時跳轉到APP1程式內,同時一直接收指令資訊,接收到BOOT指令時,復位進入到BOOT程式內(不改變APP1和2狀態資訊,若接收過程出現故障再次復位則進入APP1程式正常執行),接收到資料下載指令後,將APP2狀態更新為更新中標誌,直至接收完成後再將APP2狀態更新為更新完成標誌,復位自檢重複上述過程。
但是程式配置好後,將BOOT和APP1程式下載到板子上時正常執行,透過IAP指令下載程式到APP2區,再將APP2區程式複製到APP1區復位後進入到APP1程式內,無法正常執行,BOOT區完好。不知道哪裡出現了問題,無法檢視晶片的FLASH資料,估計是再複製過程中出現了問題,因為直接下載到APP區是可以正常執行的。明天再看看到底是哪裡的問題。
7.9日工作總結
相關文章
- 工作總結
- Rxjava工作原理總結RxJava
- 2018年工作總結
- 工作心得和總結
- 工作經驗總結
- 2016年終工作總結
- IYPT助教工作總結
- 2018,工作巨集觀總結
- 週記-工作小總結
- 工作隨意總結20240830
- ReactNative 專案工作總結React
- 【工作總結】工作為什麼總是手忙腳亂
- 九年程式人生 工作總結
- 工作經驗日常總結===20241105
- IT開發工作分類【總結】
- Git概念及工作原理總結Git
- 【工作總結】工作累死累活,結果越做越差怎麼辦?
- 遊戲前端工作流程總結遊戲前端
- SAP工作流觸發總結
- 2024/11/12日工作總結
- 2024/11/11日工作總結
- 2024/10/17日工作總結
- 2024/10/10日工作總結
- 2024/10/18日工作總結
- 2024/11/4日工作總結
- 2024/11/22日工作總結
- 2024/10/31日工作總結
- 2024/11/1日工作總結
- 【工作總結】努力工作為什麼感覺沒用
- 2018-12-09週記-工作小總結
- 工作總結:nginx開發中的問題Nginx
- 工作總結ppt模板,瞭解一下!
- git在工作中的用法總結-使用篇Git
- 【工作總結】證書到底有什麼用?
- 工作總結!日誌列印的11條建議
- 工作三年多的感慨與總結(一)
- 第二次作業 工作任務總結
- 軟工第二次任務-工作總結軟工