工具:IAR + STM32CubeMx
2、Boot编写要点:
MCU:STM32F103
功能:实现Boot + APP
概述:原来程序需要做在线升级,我的方案是找一片区域存放新的程序(新APP),运行中可以进行升级(旧APP),接收完毕后重新启动,由Boot进行升级,升级完成后,跳转到APP区域执行。
详细过程:
1、APP程序改写要点:
(1)IAR的设置:程序存放、中断向量表起始位置需要更改,我预留Boot大小为0x3000,因此程序空间和中断向量起始更改为0x08003000
(2)代码中:中断向量表偏移需要更改为0x3000,我使用的是CubeMX生成的代码,文件是system_stm32f1xx.c,修改其中的#define VECT_TAB_OFFSET 为0x3000
#define VECT_TAB_OFFSET 为0x3000
(3)代码中:主程序一开始应该打开总中断
__enable_irq();
2、Boot编写要点: