STM32系統bootloader應用

嵌入式開發中,常常須要bootloader進行程序固件升級和系統維護,因此bootloader必不可少的功能。STM32系統自帶的系統bootloader很方便使用。大量減小了工程師開發bootloader的工做微信


1. 摘要函數

本篇筆記主要介紹,STM32系統bootloader的應用,以STM32H743芯片爲例介紹,測試

2. 準備工做spa

    1, IAR 8.32.1.net

    2, STM32CubeProgrammer3d


3. 系統bootloader介紹blog

相信用過STM32芯片的童鞋應該都不陌生,在芯片出廠的時候,意法在內部系統固化了bootloader,而且支持多種接口像UART,I2C,SPI,USB,CAN等等,可用於下載升級用戶程序,就我使用的H743來說可支持接口以下:接口

注意紅色框部分地址有誤,程序中代碼須要注意,目前支持幾乎全系列STM32。像F0, F1,F4,F7,H7,包括比較新的G系列也都支持,還有L系列和W系列。此bootloader可配合ST官方的STM32CubeProgrammer上位機使用,這樣大大節省了開發時間,固然你若是要作更好的bootloader能夠根據這個思路本身在添加更多功能。ci

就我最近使用的H743來說,咱們今天以H743爲例,以USB接口爲例來介紹。開發

4. 硬件鏈接示意圖

將板子經過USB線連入電腦,板子做爲USB device

5. Bootloader模式

在使用bootloader時候,須要考慮怎麼進入boot模式,而STM32支持經過boot引腳跳轉,經過boot引腳跳轉須要配置引腳和地址寄存器

經過用戶應用程序跳轉則不須要配置boot引腳,而通常經過應用程序跳轉比較方便,尤爲是帶有很差拆卸外殼的產品,咱們經過應用程序跳轉極爲方便,固之後者爲例來講明。經過boot引腳跳轉的配置說明你們能夠參考官方文檔AN2606.

6. 配置需求

通常來講咱們在進入跳轉到bootloader時候須要作一些工做,STM32在進入系統bootloader時候須要作如下動做:關閉全局中斷,時鐘恢復配置爲HIS,清除中斷掛起標誌,使能中斷,設置跳轉地址,執行跳轉,能夠是按鍵檢測跳轉,或者觸摸操做跳轉,這個根據本身的應用去實現。

7. 代碼實現

經過按照上面的說明咱們就能夠經過代碼實現,只須要在須要跳轉動做的地方調用下面的函數。注意ST官方給的系統bootloader系統地址不對,AN2606中給出的地址有誤,使用時候要注意,需採用下面的地址,此處參考了安富萊例程,一併感謝。

8. 測試

配合STM32CubeProgrammer完成測試,測試步驟很簡單,打開STM32CubeProgrammer,當應用程序中知足跳轉條件進入系統bootloader後,就會進入DFU,點擊鏈接,如過鏈接無誤,能夠選擇要下載的文件,進行下載,下載成功後,有提示。按照圖示操做就能夠完成。


點擊Open file,選擇本身要下載的文件




或者能夠在菜單裏選擇第二項進入下面界面更新。


9. 參考文檔

序號

文獻

1

STM32H743RM

2

AN2606: STM32 microcontroller system memory boot mode



本文分享自微信公衆號 - 嵌入式程序猿(InterruptISR)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索