嵌入式開發(fā)中,經常需要bootloader進行程序固件升級和系統(tǒng)維護,所以bootloader是必不可少的功能。STM32系統(tǒng)自帶的系統(tǒng)bootloader很方便使用。大量減少了工程師開發(fā)bootloader的工作。
1. 摘要
本篇筆記主要介紹,STM32系統(tǒng)bootloader的應用,以STM32H743芯片為例介紹,
2. 準備工作
1, IAR 8.32.1
2, STM32CubeProgrammer
3. 系統(tǒng)bootloader介紹
相信用過STM32芯片的童鞋應該都不陌生,在芯片出廠的時候,意法在內部系統(tǒng)固化了bootloader,并且支持多種接口像UART,I2C,SPI,USB,CAN等等,可用于下載升級用戶程序,就我使用的H743來講可支持接口如下:
注意紅色框部分地址有誤,程序中代碼需要注意,目前支持幾乎全系列STM32。像F0, F1,F4,F7,H7,包括比較新的G系列也都支持,還有L系列和W系列。此bootloader可配合ST官方的STM32CubeProgrammer上位機使用,這樣大大節(jié)省了開發(fā)時間,當然你如果要做更好的bootloader可以根據這個思路自己在添加更多功能。
就我最近使用的H743來講,我們今天以H743為例,以USB接口為例來介紹。
4. 硬件連接示意圖
將板子通過USB線連入電腦,板子作為USB device
5. Bootloader模式
在使用bootloader時候,需要考慮怎么進入boot模式,而STM32支持通過boot引腳跳轉,通過boot引腳跳轉需要配置引腳和地址寄存器
通過用戶應用程序跳轉則不需要配置boot引腳,而一般通過應用程序跳轉比較方便,尤其是帶有不好拆卸外殼的產品,我們通過應用程序跳轉極為方便,固以后者為例來說明。通過boot引腳跳轉的配置說明大家可以參考官方文檔AN2606.
6. 配置需求
一般來說我們在進入跳轉到bootloader時候需要做一些工作,STM32在進入系統(tǒng)bootloader時候需要做以下動作:關閉全局中斷,時鐘恢復配置為HIS,清除中斷掛起標志,使能中斷,設置跳轉地址,執(zhí)行跳轉,可以是按鍵檢測跳轉,或者觸摸操作跳轉,這個根據自己的應用去實現。
7. 代碼實現
通過按照上面的說明我們就可以通過代碼實現,只需要在需要跳轉動作的地方調用下面的函數。注意ST官方給的系統(tǒng)bootloader系統(tǒng)地址不對,AN2606中給出的地址有誤,使用時候要注意,需采用下面的地址,此處參考了安富萊例程,一并感謝。
8. 測試
配合STM32CubeProgrammer完成測試,測試步驟很簡單,打開STM32CubeProgrammer,當應用程序中滿足跳轉條件進入系統(tǒng)bootloader后,就會進入DFU,點擊連接,如過連接無誤,可以選擇要下載的文件,進行下載,下載成功后,有提示。按照圖示操作就可以完成。
點擊Open file,選擇自己要下載的文件
或者可以在菜單里選擇第二項進入下面界面更新。
9. 參考文檔
-
STM32
+關注
關注
2270文章
10900瀏覽量
356045 -
bootloader
+關注
關注
2文章
235瀏覽量
45627
原文標題:STM32系統(tǒng)bootloader應用
文章出處:【微信號:InterruptISR,微信公眾號:嵌入式程序員】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論