ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码
IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。
在实现IAP功能时, 单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了IAP功能。
IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。
IAP的实现灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器,可以通过现有的INTERNET或其它通讯方式很方便地实现远程升级和维护。
经过我的反复查资料,终于明白一点了。
我把FLASH分成3个区
boot,data,code。
boot引导到code,boot可以读写data,code区数据,code可以读写data区
但是boot都有什么功能呢?
楼主所用的ARM是哪家的?
关于采用IAP下载,
楼主可以去NXP的官网,他那边有关于这方面的应用设计,可以参考下。
楼主好好看看下下面两个文档吧:
Using IAP for LPC2000 ARM devices (2004-10-25):
http://www.nxp.com/documents/application_note/AN10256.pdf
LPC2000 secondary bootloader for code update using IAP (2009-05-26):
http://www.cn.nxp.com/documents/application_note/AN10835.pdf