以前对IAP的理解也是建立在朋友灌输的 – 有IAP就是有仿真功能 –这层理解上,也没想太多。


其实仔细看看官方的手册对比网上的解答发现似乎不仅仅是这样。

ISP(In-system programmable)是 在系统可编程

指的是不需要把单片机从目标系统板上取下来就可以直接从PC往单片机里面烧录程序。
关于ISP应该讲很熟悉了,学过STC的51单片机,它的烧录软件上赫然有着STC-ISP的字。

ios ua解析机型_ios ua解析机型

IAP(In-Application programmable)是 在应用可编程

1、指的是可以通过单片机自身的程序修改单片机该程序区的内容;

仔细想想,它说的难道不是在线升级的含义嘛!,,,其实还是感觉不实在,难道这个用得少异或自己见得少?

2、更想说的是,STC这里的狭义IAP指-用户可以将用户程序区的程序Flash当EEPROM使用。

读这句确实挺绕口也挺不好理解的,举个例子吧,
比如使用IAP 61K的FLASH。 那么,如果你程序只用了1K 意味着至少你有60K的空间可以用于数据的存储。 数据的存储的地方不相当于EEPROM了吗?

结合上面和下面这段话一起理解下。
如果把程序区Flash分成两段,1和2,那么则有:
在程序区1中的程序可以修改程序区2中的内容;
程序区2中的内容不可以执行,只能当数据使用,功能相当于EEPROM;

3、就是经常说的在线仿真了。

EEPROM功能是:

EEPROM 就是一个存东西的地方

区别:

ISP:从PC机修改单片机程序区的内容(即烧录)
IAP:单片机自己修改自己程序区的内容
EEPROM:单片机程序区1中的程序可以修改程序区2中的内容

再对比下手册的这个图

ios ua解析机型_数据_02

EEPROM 一栏有IAP的表示可以把Flash剩余空间作为EEPROM
没有IAP的,STC打头的单片机,就要单独的内部EEPROM了。。。