"); //-->
在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。 ISP和IAP很相似,都是不需要把芯片从板子上拔出来,就达到了用PC-MCU的编程接口(JTAG、串口、双绞线、SPI等)搞定新版本的升级的目的。MCU内部都是首先执行一段独立的Boot代码(这段Boot代码一般是出厂预置,或使用编程器烧录的,通常只有1k或4k,SST通常是占用一块独立的Block,Philips通常是让BootROM地址与其他Flash重叠,以达到隐藏的效果),Boot负责控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式(如,ether网口),将用户指定的某个在PC上编译完成的MCU可运行的二进制代码文件编程入MCU内的程序存储器。
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读你的数据。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
第二届飞思卡尔智能车比赛全国第7名视频
辞旧岁--论坛2003最后一贴
用于植入式装置的遥测系统设计
CSJ-T300A/CSJ-R02A与单片机组成的电路
由CSJ-T300B与CSJ-R02B组成的遥控电路
台积电对人工智能泡沫担忧“非常紧张”
与Douglass聊了几句
第二届飞思卡尔智能车比赛全国第6名视频
HBM刻蚀设备据称将进入超级周期
英伟达的新Rubin架构在网络领域蓬勃发展
第二届飞思卡尔智能车比赛全国第9名视频
油井参数测试器下放深度测试仪的研制
Quectel SH602HA-AP计算模块针对机器人设备
OpenAI 悄然推出支持25种语言的ChatGPT翻译
第二届飞思卡尔智能车比赛全国第8名视频
儿童走失警示器(NE555/TDA7000)
四路遥控交流开关
禁止中国实体使用美国和以色列网络安全软件
存储还要继续疯!英伟达ICMSP让闪存涨停,黄仁勋要一统存储处理器
用于飞行器分离测速的数据采集处理系统
OpenAI投资于脑机接口开发商Merge Labs
用于偶极子声波测井仪的高精度数据采集系统的设计
用P89C51RC+IA 和EMP7064S实现转速测量
CES 2026:首款固态车辆可能是摩托车
调查一下版本控制软件的使用情况
魏哲家释出正面三大关键 台积电2026唯一担忧是什么
第四届智能车北京科技大学特等奖
通用家电遥控器
求TrueFFS源码,或相关实现文档,谢谢!
争取抢到2004第一帖!