当前位置: 首页 > news >正文

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的是否停机烧录

http://www.lryc.cn/news/23854.html

相关文章:

  • 【组织架构】中国铁路兰州局集团有限公司
  • 【计算机三级网络技术】 第四篇 路由设计技术基础
  • 嵌入式工程师进阶,基于AM64x开发板的IPC多核开发案例分享
  • 腾讯安全与锐捷网络战略合作,威胁情报能力“被集成”
  • 接口自动化测试用例详解
  • 【数据库增删查改进阶版】保姆级教程带大家去学习更加复杂的sql语句,各种各样的约束以及各种各样的查询
  • 【C#基础】C# 正则表达式
  • 企业活动直播如何设置VIP观看席?
  • 线性代数学习-2
  • Java 类
  • GO中sync 包的 RWMutex 读写互斥锁
  • 糖化学试剂55520-67-7,5-vinyl-2-deoxyuridine,5-乙烯基-2-脱氧尿苷特点分析说明
  • 五年携手共话,FISCO BCOS为数实相生注入新动能
  • 特征可视化技术t-SNE
  • .NET 导入导出Project(mpp)以及发布后遇到的Com组件问题
  • centos 8安装配置 yum/dnf镜像源 以及 docker相关操作
  • java基础之线程池
  • Substrate 基础 -- 教程(Tutorials)
  • 一个线程两次调用start()方法会出现什么情况?
  • 看完再拿五分,软考高项时政提分必备
  • 界面开发(1) --- PyQt5环境配置
  • shield分析
  • Javaweb增删改查之【查】
  • C++ STL:迭代器 Iterator
  • 【C++】泛型编程——模板初阶
  • 数据结构入门--时间 空间复杂度
  • 计算机操作系统第一章
  • ARM LDREX/STREX指令以及独占监控器详解
  • 吉林大学 程序设计基础 2022级 实验复盘 2.23
  • Linux系列 常用命令(目录和文件管理)vi和vim 编辑使用,(笔记)