- 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
簡介
- 之前的教程很多人反饋說, 比較麻煩, Ymodem協議不懂, Xshell也沒用過.
- 根據反饋於是重新設計了一種全新的更簡單升級思路, 並且自己寫了上位機.
- 本教程採用Bootloader接收升級程序, 甚至可以不需要App2區.
- (文末會提供代碼和簡單的協議,但不講解代碼)
思路
- 通過Bootloader獲取程序,這樣每個App都可以少寫很多關於OTA的代碼, 減少了出錯的概率.
- 同時因爲Bootloader出廠之後通常是不會更改的, 因此就算升級失敗, 也有補救的方法.
- 同時這樣可以不進行程序的搬運, 直接就能夠將代碼下載進App1,甚至可以不需要App2區.
- 當然也可以保留App2區, App1也可以實現下載程序到App2的功能.
先看Bootloader的框架
- 標誌位放在Bootloader的最後一頁的最後一個字節.
在看App1的框架
- 收到程序之後只需要修改標誌位再重啓就行了(如果Bootloader有自檢過程,甚至不需要修改標誌爲).
演示
提供源碼, 不講解代碼 ! ! !
- 協議是自己定的, 上位機也是自己寫的.
- 免費提供所有源碼和協議.
通信協議
OTA_protocol.pdfBoot源代碼
STM32F103rb_Boot_New.zipApp1源代碼
STM32F103rb_App1_New.zip上位機程序
Leaf_OTA.exe上位機C#源代碼
Leaf_OTA.zip
備註:提供一下個人微信號 Hleafleafleaf,歡迎加好友,共同學習!共同進步!