IAP初探

IAP(In-Application Programming)在应用编程,浅显易懂,按照字面意思即是在程序不关闭情况下,对应用进行再次写入程序,对程序的写入需要传输数据,而传输数据的前提是通信,

IAP对代码进行更新可以简要分为以下过程:

  1. 将项目代码分为两块,第一块不执行功能函数,只是执行通信对代码和命令进行传输,决定对第二部分代码是否进行更新
  2. 如果需要更新则执行第三步操作,不需要更新则执行第四步操作
  3. 进行第二部分代码更新
  4. 执行第二部分代码

第一部分代码可以看成IAP,第二部分代码可以看成APP

IAP和APP分别有两套中断向量表:

  • 当在执行IAP时,将app烧写到Flash中在跳转到App中断向量表中可以执行APP程序
  • 从APP跳转到IAP时,需要将APP中断向量表修改成IAP中断向量表,然后执行RESET中断处理程序执行流程

一片STM32芯片的Code(代码)区内一般只有一个用户程序。而IAP方案则是将代码区划分为两部分,两部分区域各存放一个程序,一个叫bootloader(引导加载程序),另一个较user application(用户应用程序)。bootloader在出厂时就固定下来了,在需要变更user application时只需要通过触发bootloader对userapplication的擦除和重新写入即可完成用户应用的更换。如图所示

在这里插入图片描述

若程序采用IAP,则内置Flash结构如下图

在这里插入图片描述

总结:

总的来说STM32的IAP方案实现需要在进行用户程序之前加一段Bootloader程序,BootLoader程序的作用就是:

①什么都不做,直接跳转到用户程序。
②删除原有的用户程序,读取*.bin文件数据并将数据重新写入新的用户程序。
对于用户程序相比普通的编程只需要做三步改动即可
①改变中断向量表。
②改变代码存放的地址空间
③修改生成*.bin文件

ISP(In-System Programming)在系统编程,在离线状态下对芯片进行烧写。

Flash擦除测试流程:利用密匙对Flash进行解锁—>对Flash进行擦除—>对Flash进行写入—>写入完成进行验证—>再次上锁

两者区别:IAP与ISP的是否停机烧录

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟小世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值