IAP基本原理

一、stm32编程方式

二、stm32的启动模式选择

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

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

三. IAP下载程序流程

注:自己写的BootLoader程序与系统的BootLoader程序是不同的。需要先通过ICP下载到BootLoader存储区域中。然后跳转到应用程序执行。

 

四.一般程序的执行流程

0x08000000中存放栈顶地址

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

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

五、IAP运作流程

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

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

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

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

 

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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值