本帖最后由 xyz549040622 于 2015-2-20 09:11 编辑
在网上找到一段话,说出来单片机实行IAP功能的几种方法,如下:
具备在应用中编程IAP功能的单片机,其程序存储器必须是可以重复烧写编程的版本(比如FLASH)。可以用于具备远程遥控软件版本升级或者参数修改的产品项目之中(比如远程抄表、用户端电话计费等系统的远程费率参数和算法程序修改);也可以应用于具备自编程功能(免用微机和烧写器)的单片机学习机、单片机单板机、实验板、演示板、教学模块等各种学习和实验工具之中。对于处在同一个存储器空间的FLASH程序存储器,不能同时扮演“被烧写存储器”和“取指令存储器”的双重角色。为了解决这个矛盾,不同厂家的单片机采用了不同的解决方案,比如: ① 可以将FLASH程序存储器分成地址有映射关系的两个区,分别由各自的电荷泵提供烧写电压。当烧写一个区时,该区的电荷泵工作,同时执行存放在另一个区的指令。例如,SST(Silicon Storage Technology)公司利用他的SuperFlash技术研制的FlashFlex51单片机系列,各个型号片内分别带有20KB、36KB或68KB可多次编程的程序存储器。该存储器又分为主存储区和次存储区。各个型号的主存储区分别为16KB、32KB或64KB,次存储区则统一为4KB。 ② 可以将单片机的程序存储器地址空间分为ROM区和FLASH区,ROM区在出厂之前就已经固化有烧写专用程序,FLASH区作用户程序存放区,这样一来,即使在烧写FLASH的同时,也不会影响对于ROM中程序的执行。MOTOROLA公司推出的MC68HC908系列单片机中采用的就是这种解决方案。 ③ PIC16F87X系列单片机中,采用了不同的解决方案。FLASH程序存储器并不分区,在对其进行烧写并且电源自动切换到电荷泵供电时,CPU自动停顿而等待。在一个单元烧写操作完毕,FLASH工作电压自动切换到正常值时,CPU才继续执行FLASH中的烧写专用程序或用户程序。 ④ 在数据存储器RAM和程序存储器FLASH两种存储器统一编址的单片机中,还可以采用的另一种方案是,在准备修改FLASH区中的用户程序之前,先把烧写专用程序拷贝到RAM区,然后跳转到RAM区去执行该程序,实现对FLASH程序存储器的烧写操作。在烧写完成之后再跳回到FLASH存储器执行正常的用户程序。微芯公司新近推出的高性能PIC18C601/801单片机采用的就是这种解决方案。MOTOROLA公司推出的MC68HC908系列单片机的某些型号,也可以采用这种解决方案。 现在的问题是,我有一款MCU,没有说明他支持IAP的功能,可是他满足有1作引导程序区(bootloader),2作运行程序区(flash),3作下载区(eeprom,flash也可以分区),那么他是否可以支持IAP功能呢?
|