你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 8847|回复: 13

什么是IAP?如何实现IAP?

[复制链接]

11

主题

0

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2008-9-3 20:19:20 | 显示全部楼层 |阅读模式
IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。

通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:
1)检查是否需要对第二部分代码进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行

第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新是再通过第一部分IAP代码更新。

对于STM32来说,因为它的中断向量表位于程序存储器的最低地址区,为了使第一部分代码能够正确地响应中断,通常会安排第一部分代码处于Flash的开始区域,而第二部分代码紧随其后。

在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。

如果IAP程序被破坏,产品必须返厂才能重新烧写程序,这是很麻烦并且非常耗费时间和金钱的。针对这样的需求,STM32在对Flash区域实行读保护的同时,自动地对用户Flash区的开始4页设置为写保护,这样可以有效地保证IAP程序(第一部分代码)区域不会被意外地破坏。

ST的网站上有使用USART实现IAP的例子,各位可以参考这个例子和相应的手册。

应用笔记 AN2557 - STM32F10xxx in-application programming using the USART.pdf

下载

275.99 KB, 下载次数: 155, 下载积分: ST金币 -1

例程:AN2557 - STM32F10xxx in-application programming using the USART.zip

下载

298.75 KB, 下载次数: 175, 下载积分: ST金币 -1

回复

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2008-9-19 15:05:51 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

回复 支持 反对

使用道具 举报

0

主题

19

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2009-3-11 08:17:35 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

解惑了
回复 支持 反对

使用道具 举报

2

主题

39

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2011-5-10 20:56:49 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。
回复 支持 反对

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-5-10 21:03:07 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

解说的好,顶一个
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-3-12 11:56:53 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

好,不错,学习了,以前还真不知道可以这么用!谢谢
回复 支持 反对

使用道具 举报

0

主题

10

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-3-12 15:04:52 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

楼主总结的简单易懂,很适合我
回复 支持 反对

使用道具 举报

0

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
2018-12-5
发表于 2012-8-29 19:38:24 | 显示全部楼层

回复:什么是IAP?如何实现IAP?

多谢了~~~
回复 支持 反对

使用道具 举报

1

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-8-30 22:43:29 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

啊,经常看到公司里边的软件工程师这么干,原来名字叫IAP。我只知道是在线升级,好哈!
回复 支持 反对

使用道具 举报

6

主题

38

回帖

2

蝴蝶豆

中级会员

最后登录
2018-4-15
发表于 2013-9-26 10:49:55 | 显示全部楼层

RE:什么是IAP?如何实现IAP?

其实用ISP方式实现远程升级会更好的。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版