因?yàn)樵谑褂?a target="_blank">RT-Thread RTOS的時(shí)候發(fā)現(xiàn)官方提出了一種通用的BootLoader方案,支持F1和F4系列的芯片,正好手頭有板子便試著用了下,順便給大家分享一下經(jīng)驗(yàn)總結(jié)吧。
硬件資源
正點(diǎn)原子stm32f407zgt6探索者開(kāi)發(fā)板,片上Flash(ROM)大小為1024KB,RAM大小為192KB,板載一個(gè)SPI Flash W25Q128。
BootLoader配置
根據(jù)官方文檔:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/,(因?yàn)槲⑿艧o(wú)法插入外部鏈接,請(qǐng)復(fù)制至外部瀏覽器打開(kāi))BootLoader的基本配置如下,加密壓縮的配置可以不選。
上述的分區(qū)表以及bootloader所占空間可以用下面的圖表示,偏移地址的概念為從0x08000000開(kāi)始偏移。flash空間的前128KB用來(lái)存放Bootloader固件,因此排在BootLoader之下的download分區(qū)的起始地址為0x08020000。
生成Bootloader固件,固件會(huì)自動(dòng)發(fā)送到自己的郵箱。
燒錄Bootloader
將得到的Bootloader固件通過(guò)STM32 ST-LINK Utility.exe 燒錄到片上flash。要注意的是,燒錄的起始地址為0x0800000。
燒錄完成后串口工具會(huì)輸出一下信息:
要注意的是,其中的NJUST字樣是自定義的,可以在bootloader生成的頁(yè)面自行定義。兩個(gè)CRC32的error信息可以忽略,因?yàn)榇藭r(shí)的flash中并沒(méi)有包含分區(qū)表,分區(qū)表信息需要我們通過(guò)燒錄app程序完成初始化配置。
FAL分區(qū)表中的onchip_flash為片上flash空間,起始地址為0x08020000,扇區(qū)大小為128KB。
燒錄app程序和打包
參考官方文檔:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/(因?yàn)槲⑿艧o(wú)法插入外部鏈接,請(qǐng)復(fù)制至外部瀏覽器打開(kāi))
燒錄出廠固件
出廠固件的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并沒(méi)有app的頭信息,這個(gè)頭信息需要由OTA打包器打包后才能添加。
恢復(fù)出場(chǎng)固件的方法:按住WK_UP按鍵的同時(shí)按下復(fù)位按鍵,保持WK_UP按鍵處于按下?tīng)顟B(tài)10秒,即可進(jìn)入恢復(fù)狀態(tài)。
-
STM32
+關(guān)注
關(guān)注
2290文章
11018瀏覽量
362672 -
RTOS
+關(guān)注
關(guān)注
24文章
844瀏覽量
120819 -
bootloader
+關(guān)注
關(guān)注
2文章
238瀏覽量
46482 -
STM32F407
+關(guān)注
關(guān)注
15文章
188瀏覽量
30284
原文標(biāo)題:基于STM32F407的STM32通用BootLoader使用經(jīng)驗(yàn)
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32F407的系統(tǒng)bootloader基礎(chǔ)知識(shí)下載
STM32F407 UCOS III實(shí)驗(yàn)
STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX

STM32F407 USB CDC調(diào)試與經(jīng)驗(yàn)總結(jié)

基于STM32F407的STM32通用BootLoader使用經(jīng)驗(yàn)

RW007_WiFi模塊(SPI/UART模式)在STM32F407上的使用經(jīng)驗(yàn)

STM32F407與STM32F105 CAN通訊失敗的定位解決

STM32F407芯片介紹

RM0090_STM32F405/415, STM32F407/417, STM32F427/437和STM32F429/439單片機(jī)參考手冊(cè)

評(píng)論