STM32CubeMx開發之路—在線升級OTA(4/4)—測試


運行環境

  • Windows10
  • STM32CubeMX Version 5.4.0
  • Keil5(MDK5) Version 5.28.0.0
  • 硬件開發板 F103RB-NUCLEO

簡介

本例程主要對前三章的教程做測試驗證 BootLoader + App的升級功能.


源代碼

代碼的下載

  • 由下圖可知兩份代碼的下載區域是不一樣的
  • 所以他們下載的區域也不一樣

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,歡迎加好友,共同學習!共同進步!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章