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