- STM32CubeMx開發之路—在線升級OTA(1/4)—基礎知識
- STM32CubeMx開發之路—在線升級OTA(2/4)—BootLoader
- STM32CubeMx開發之路—在線升級OTA(3/4)—App
- STM32CubeMx開發之路—在線升級OTA(4/4)—測試
- STM32CubeMx開發之路—在線升級OTA—(另一種思路)
運行環境
Windows10
STM32CubeMX
Version 5.4.0
Keil5(MDK5)
Version 5.28.0.0
硬件開發板
F103RB-NUCLEO
簡介
本例程主要對前三章的教程做測試驗證 BootLoader
+ App
的升級功能.
源代碼
BootLoader源代碼
STM32F103rb_bootloader.zipApp1源代碼
STM32F103rb_App1.zip
代碼的下載
- 由下圖可知兩份代碼的下載區域是不一樣的
- 所以他們下載的區域也不一樣
BootLoader的下載
- BootLoader的代碼默認是最開始的所以不需要特別設置代碼的下載位置
- 按照下圖, 修改擦除方式爲
Erase Sectors
, 大小限制在0X5000
(20K)
- 燒錄代碼
- 運行, 通過串口1打印輸出, 會看到以下打印消息
- 說明BootLoader已經成功運行
App1的下載
- App1稍微複雜一點, 需要將代碼的起始位置設置爲
0x08005000
- 同時也要修改擦除方式爲
Erase Sectors
, 見下圖
- 燒錄代碼
- 運行, 通過串口1打印輸出, 會看到以下打印消息
- 說明
BootLoader
已經成功跳轉到版本號爲0.0.1的App1
生成App2的.bin文件
- Keil如何生成.bin文件, 請參考這篇博文 Keil如何生成.bin文件
- 修改代碼, 把版本號改爲0.0.2, 並且編譯並且生成.bin文件
- 生成好之後你會得到一個.bin結尾的文件, 這就是我們待會兒YModem要傳輸的文件
使用Xshell進行文件傳輸
- 打開Xshell
- 代碼中, 串口1進行調試信息的打印, 串口2進行YModem升級的
- 所以使用Xshell打開串口2進行文件傳輸, 串口1則可以通過串口調試助手查看調試消息, 具體過程如下
- 你會看到App的版本成功升級到0.0.2了.
- 如果你到了這一步.
- 那麼恭喜你! 你已經能夠使用在線升級了!
總結
通過本幾節的教程, 想必你已經會使用在線升級了, 只要原理知道了其他的問題都可以迎刃而解了, 除了使用YModem協議傳輸.bin文件, 你還可以通過藍牙, WIFI,等其他協議傳輸, 只要能夠將.bin文件傳輸過去, 那其他的部分原理都差不多.
備註:提供一下個人微信號 Hleafleafleaf,歡迎加好友,共同學習!共同進步!