STM32是可以IAP编程的,但是能找到的例程都是下载一个应用程序到里面去,了解了原理之后发觉完全可以放一大堆程序进去,就像手机安装了很多个APP,想用哪个就选哪个。趁最近刚好用到IAP升级,简单的实现了一下。
IAP升级的原理在我看来
bootloader程序需要做的事情:
- 指定编译器生成可执行文件的执行地址
- 跳转前
- 检查跳转地址是否符合要求
- 复位所有外设寄存器(非必须)
- 初始化堆栈指针到应用程序的第一个字存储的地址
- 跳转到第二个字指向的复位中断向量
APP应用程序需要做的事情:
- 开始运行就应该设置向量表偏移地址