IAP基本原理

1、stm32编程方式编程

2、stm32的启动模式选择函数

BOOT1置0,BOOT0置1,程序从系统存储器中执行启动程序BootLoader代码,也就是从串口中下载程序到主存储器中。3d

BOOT0置0,BOOT1无论是置0仍是置1,主闪存存储器被选为启动区域,即执行写入的应用程序。blog

三. IAP下载程序流程接口

注:本身写的BootLoader程序与系统的BootLoader程序是不一样的。须要先经过ICP下载到BootLoader存储区域中。而后跳转到应用程序执行。产品

 

四.通常程序的执行流程class

0x08000000中存放栈顶地址下载

0x08000004开始存放一个中断向量表程序

而后执行复位程序,而后到main函数,当有中断的时候程序会跳到中断向量表中的起始地址,执行中断程序。执行完毕后又回到main函数。im

5、IAP运做流程

(1)新程序中保存了一份新的中断向量表

(2)当有中断时先跳转到BootLoader中的中断向量表,而后经过偏移找到中断服务程序入口,执行中断程序。

(3)执行中断程序完成后跳转到main函数。

复位以后怎么跳转到main函数?

 

6、IAP升级应用程序的过程

BootLoader程序经过一个接口接收到应用程序包,而后写到APP的某个区域,在产品中通常是发出一个升级命令,而后应用程序执行一个跳转或软复位,跳转到BootLoader升级应用程序。