资料介绍
IAP,全称是“In-Application Programming”,中文解释为“在程序中编程”。IAP 是一种
对通过微控制器的对外接口(如 USART,IIC,CAN,USB,以太网接口甚至是无线射频通道)
对正在运行程序的微控制器进行内部程序的更新的技术(注意这完全有别于 ICP 或者 ISP 技
术)。ICP(In-Circuit Programming)技术即通过在线仿真器对单片机进行程序烧写,而 ISP 技
术则是通过单片机内置的 bootloader 程序引导的烧写技术。无论是 ICP 技术还是 ISP 技术,
都需要有机械性的操作如连接下载线,设置跳线帽等。若产品的电路板已经层层密封在外壳
中,要对其进行程序更新无疑困难重重,若产品安装于狭窄空间等难以触及的地方,更是一
场灾难。但若进引入了 IAP 技术,则完全可以避免上述尴尬情况,而且若使用远距离或无线
的数据传输方案,甚至可以实现远程编程和无线编程。这绝对是 ICP 或 ISP 技术无法做到的。
某种微控制器支持 IAP 技术的首要前提是其必须是基于可重复编程闪存的微控制器。STM32
微控制器带有可编程的内置闪存,同时 STM32 拥有在数量上和种类上都非常丰富的外设通
信接口,因此在 STM32 上实现 IAP 技术是完全可行的。
实现 IAP 技术的核心是一段预先烧写在单片机内部的 IAP 程序。这段程序主要负责与外
部的上位机软件进行握手同步,然后将通过外设通信接口将来自于上位机软件的程序数据接
收后写入单片机内部指定的闪存区域,然后再跳转执行新写入的程序,最终就达到了程序更
新的目的。
在 STM32 微控制器上实现 IAP 程序之前首先要回顾一下 STM32 的内部闪存组织架构和
其启动过程。STM32 的内部闪存地址起始于 0x8000000,一般情况下,程序文件就从此地址
开始写入。此外 STM32 是基于 Cortex-M3 内核的微控制器,其内部通过一张“中断向量表”
来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完
成启动。而这张“中断向量表”的起始地址是 0x8000004,当中断来临,STM32 的内部硬件
机制亦会自动将 PC 指针定位到“中断向量表”处,并根据中断源取出对应的中断向量执行
中断服务程序。最后还需要知道关键的一点,通过修改 STM32 工程的链接脚本可以修改程
序文件写入闪存的起始地址。
在 STM32 微控制器上实现 IAP 方案,除了常规的串口接收数据以及闪存数据写入等常
规操作外,还需注意 STM32 的启动过程和中断响应方式。图 1 显示了 STM32 常规的运行流
程
对图 1 解读如下:
1、 STM32 复位后,会从地址为 0x8000004 处取出复位中断向量的地址,并跳转执行复位中
断服务程序,如图 1 中标号○1 所示。
2、 复位中断服务程序执行的最终结果是跳转至 C 程序的 main 函数,如图 1 中标号○2 所示,
而 main 函数应该是一个死循环,是一个永不返回的函数。
3、 在 main 函数执行的过程中,发生了一个中断请求,此时 STM32 的硬件机制会将 PC 指
针强制指回中断向量表处,如图 1 中标号○3 所示。
4、 根据中断源进入相应的中断服务程序,如图 1 中标号○5 所示。
5、 中断服务程序执行完毕后,程序再度返回至 main 函数中执行,如图 1 中标号○6 所示。
若在 STM32 中加入了 IAP 程序,则情况会如图 2 所示。
- STM32F407/STM32F417通过以太网实现在应用中编程(IAP)
- STM32在应用中编程通过I2C总线 1次下载
- Megawin 8051 MCU的IAP(应用程序编程)示例代码
- 应用笔记-在 CW32F030 上实现 IAP 功能
- 浅谈STM32在应用中编程(IAP)的应用(俗称在线更新程序)
- STM32代码远程升级之IAP编程
- STM32 IAP升级程序设计详解-IAR环境
- STM8在IAP中使用用户引导加载程序AN2659 3次下载
- 使用STM32单片机实现IAP的详细资料说明
- STM32在应用编程(IAP)使用USART 8次下载
- 关于STM32IAP总结 14次下载
- stm32单片机自我升级程序IAP 22次下载
- STM32的IAP技术入门提高 5次下载
- IAP在应用中编程及其应用
- IAP在应用中编程及其应用
- STM32单片机实现固件在线升级(IAP) 3584次阅读
- 基于STM32的串口环形队列IAP调试 1198次阅读
- MAXQ7665寻页程序和数据闪存的应用内编程 618次阅读
- MAXQ7665扇区可擦除程序和数据闪存的应用内编程 625次阅读
- 常用的几种IAP升级技术方案是哪些 1304次阅读
- 什么是IAP? 1.5w次阅读
- 使用MCU以太网接口实现IAP 2455次阅读
- AT32 USB MSD IAP简介及功能特点 1563次阅读
- 基于IAP流程的两片Flash拼接的Flash控制器方案设计 2161次阅读
- 微处理器IAP技术中是如何融合rfid技术的 1060次阅读
- STM32 IAP的使用关键点 1569次阅读
- 如何采用STM32单片机实现IAP功能 3966次阅读
- 基于STM32的IAP升级程序分享 7889次阅读
- STM32F030之IAP代码编写 1.1w次阅读
- STM32_IAP详解(有代码,有上位机) 3.6w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多