導言
本教程使用正點原子戰艦板開發。
《STM32F103_Bootloader程序開發11 - 實現 App 安全跳轉至 Bootloader》上一章節實現App跳轉bootloader,接著,跳轉到bootloader后,下位機要發送報文‘C’給IAP上位機,表示我準備好接收固件數據。
項目地址:
- Gitee (國內推薦): https://gitee.com/wallace89/MCU_Develop/tree/main/bootloader11_stm32f103_app_jump_boot
- GitHub: https://github.com/q164129345/MCU_Develop/tree/main/bootloader11_stm32f103_app_jump_boot
一、代碼
1.1、main.c
二、測試IAP升級全流程
2.1、正常IAP流程
如上圖所示,在iap_py文件夾下使用指令python3 main.py --port COM8 --baud 115200 --file .\firmware\App_crc.bin --auto-jump
啟動IAP升級全流程。最后,IAP升級完畢,順利跳轉App程序運行。
2.2、異常IAP流程
如上所示,在IAP升級中途,我強制退出IAP程序。接著,bootloader在通訊倒計時結束后,跳轉回之前的App程序。控制板并沒有變成“磚頭”,等待下一次的IAP升級請求!