用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 />修改原因:错别字
|