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

STM32單片機Bootloader的實現(xiàn)

STM32F407的系統(tǒng)bootloader基礎(chǔ)知識下載
STM32系統(tǒng)自帶的系統(tǒng)bootloader有何作用
基于stm32的can BootLoader系統(tǒng)資料分享
STM32 BootLoader升級固件

STM32單片機的bootloader設(shè)計流程解析資料分析

STM32 Bootloader異常復(fù)位如何解決

STM32系統(tǒng)bootloader應(yīng)用

STM32單片機bootloader掃盲

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

STM32 Bootloader異常復(fù)位案例

評論