ISP:in system programming,
IAP: in applicatin programming
但两者的操作办法,成果和运用场合有什么区别
什么是ISP:
用写入器将code烧入,不过,芯片能够在方针板上,不必取出来,在规划方针板的时分就将接口规划在上面,所以叫”在体系编程”,即不必脱离体系;
什么是IAP:
在运用编程,有芯片本身(或经过外围的芯片)能够经过一系列操作将code写入,比方一款支撑Iap的单片机,内分3个程序区,1作引导程序区,2作运转程序区,3作下载区,芯片经过串口接纳到下载指令,进入引导区运转引导程序,在引导程序下将new code内容下载到下载区,下载结束并校验经往后再将下载区内容复制到2区,运转复位程序,则Iap完结;
1,ISP 程序晋级需求到现场处理,不过好一点的是不必拆机器了;
2,IAP 假如有网管体系的话,用网管下载全部搞定,人不必跑来跑去,
这可能是他们的长处或运用吧
ISP和IAP最大的不同是:由谁来触发。
ISP有4种触发办法:
1.由外部硬件电路:如VDD坚持高电平,给RST接连3个脉冲;
2.检测状况位:如ISPEN,为0时PC指针从0000H开端履行;为1时,经过“引导向量”计算出“ISP代码”的方位。每次复位后都会检测该状况位;
3.间断操控符信号触发芯片复位:间断操控符信号便是指在异步串行口的接纳脚上呈现长达一帧长度的低电平,这儿一帧的长度与异步串行口的作业形式有关。
4.直接调用ISP:用户程序也能够调用,可是很风险。
4种办法的意图是相同的——进入ISP子程序,比方Philips出厂的ISP子程序在1E00H-1FFFH,只要能引导PC指针指向1E00H就能够了。
而进入ISP代码的意图是:进入BootROM。
IAP的触发比较简单一些,没有外部触发。经过一些指示位(SST为SC0/SC1、SFCF[1,0];Philips为一段IAP子程序,保存在FF00H~FFFFH地址空间中),到达引导到BootROM的意图。
异曲同工,ISP、IAP所进入的BootROM里边驻留的Boot代码,才是最终方针。
最终一种:并行编程形式。不需求BootROM,直接设置芯片的多个引脚来让芯片辨认指令(如:擦除、写入、验证等),从P口传地址、数据,就能够写入Flash
用LPC2000的IAP,你自己分配好FLASH空间,指定一个BLOCK用来寄存你的数据,然后经过IAP进行写操作。每次开机后,从这个BLOCK读你的数据。
IAP的完结
1)查看是否需求对第二部分代码进行更新
2)假如不需求更新则转到4)
3)履行更新操作
4)跳转到第二部分代码履行
关于STM32来说,由于它的中止向量表坐落程序存储器的最低地址区,为了使榜首部分代码能够正确地呼应中止,一般会组织榜首部分代码处于Flash的开端区域,而第二部分代码紧随其后。
在第二部分代码开端履行时,首要需求把CPU的中止向量表映像到自己的向量表,然后再履行其他的操作。