本文來自RT-Thread項(xiàng)目代碼貢獻(xiàn)者(SeniorZ) 希望對(duì)基于RT-Thread系統(tǒng)開發(fā)項(xiàng)目的朋友有所幫助。
硬件資源
正點(diǎn)原子stm32f407zgt6探索者開發(fā)板,片上Flash(ROM)大小為1024KB,RAM大小為192KB,板載一個(gè)SPI Flash W25Q128。
BootLoader配置
https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/
生成Bootloader固件,固件會(huì)自動(dòng)發(fā)送到自己的郵箱。
燒錄Bootloader
將得到的Bootloader固件通過STM32 ST-LINK Utility.exe 燒錄到片上flash。要注意的是,燒錄的起始地址為0x0800000。
要注意的是,其中的NJUST字樣是自定義的,可以在bootloader生成的頁(yè)面自行定義。
兩個(gè)CRC32的error信息可以忽略,因?yàn)榇藭r(shí)的flash中并沒有包含分區(qū)表,分區(qū)表信息需要我們通過燒錄app程序完成初始化配置。
FAL分區(qū)表中的onchip_flash為片上flash空間,起始地址為0x08020000,扇區(qū)大小為128KB。
燒錄app程序和打包
https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/
燒錄出廠固件
出廠固件的keil編譯相關(guān)設(shè)置同app程序一樣,中斷向量表偏移地址也是一樣的。
在制作出廠固件app_factory時(shí),需要將keil生成的bin用ota打包器進(jìn)行打包,打包器的固件分區(qū)名為app,固件版本為1.0.0,然后將打包生成的app_factory.rbl改后綴名為app_factory.bin。最后使用st-link-utility將修改后綴名的app_factory.bin燒錄到Flash的0x08060000地址即可。
要注意,不可以直接把keil編譯的bin文件直接下載到factory分區(qū),因?yàn)榇藭r(shí)的bin并沒有app的頭信息,這個(gè)頭信息需要由OTA打包器打包后才能添加。
恢復(fù)出廠固件的方法:按住WK_UP按鍵的同時(shí)按下復(fù)位按鍵,保持WK_UP按鍵處于按下狀態(tài)10秒,即可進(jìn)入恢復(fù)狀態(tài)。
參考資料
https://www.rt-thread.org/qa/thread-11864-1-1.html
推薦閱讀:
如何正確使用MDK-ARM優(yōu)化功能,以及優(yōu)化之后帶來的影響
從TrueSTUDIO遷移到STM32CubeIDE只需要簡(jiǎn)單幾步
關(guān)注公眾號(hào)『strongerHuang』,在底部菜單中查看更多精彩內(nèi)容!
長(zhǎng)按識(shí)別圖中二維碼關(guān)注