请教张工关于FLASH模拟EE

[复制链接]
2488|2
 楼主| yewuyi 发表于 2008-5-12 10:41 | 显示全部楼层 |阅读模式
在MOTO的芯片中用FLASH模拟EE时,都需要做一步工作就是把代码拷贝到RAM中运行,把代码拷贝到RAM中运行的原因是否是因为MOTO的芯片RAM和ROM是统一寻址的,也就是说CPU可以把RAM当做ROM那样寻址执行代码,把代码拷贝到RAM中运行等同于把机器码放到RAM中,然后把PC值强制转到RAM中代码的起始地址,但在另外一些厂家的芯片中,例如MCP的一些芯片,因为CPU的PC指针不能在RAM中寻址,所以,用FLASH模拟EE时把代码拷贝到RAM中运行是不能捣鼓的?!
张明峰 发表于 2008-5-12 13:16 | 显示全部楼层

FLASH模拟EE

用FSL单片机的程序Flash模拟实现数据EE,需要把关键一小段代码拷贝到RAM中运行的根本原因是由于在进行Flash擦除或编程时,芯片内部Flash电路会被加上编程高压,此时读Flash内容(程序执行)会不可靠,取到无效或非法指令,表现出的现象就是程序复位.<br />FSL单片机为数据(RAM)和程序(Flash)统一编址,代码指令可以在Flash中运行,也可以在RAM中运行.同样,读RAM和Flash时寻址方式没有任何区别.为了解决Flash编程时无法读Flash内容的问题,我们就必须把原本在Flash中的一小段关键代码(启动编程并查询结束)先拷贝到RAM,然后程序跳到RAM中运行.这不是为了好玩.<br />其他的单片机实现Flash编程的方式可能不同,确实有些是无法将代码拷贝到RAM中运行.据我所了解的几款单片机,在Flash处于编程状态时,都是无法继续从Flash中取指令运行的.对于你我熟悉的MCHP的单片机,一旦启动Flash编程,CPU就暂停若干个指令周期.<br /><br />修改原因:错别字
 楼主| yewuyi 发表于 2008-5-12 13:31 | 显示全部楼层

TKS

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1416

主题

20006

帖子

232

粉丝
快速回复 在线客服 返回列表 返回顶部