手头上有个项目,原本Flash仅是作为程序存储器的,但后来用户要求加入一些参数保存功能,而且要得很急!目前板上没有任何ROM,只能把参数保存到Flash,但是改了程序后调试,总是在写操作时跑飞,百度一下搜索到如下结果:“不能同时在一片flash中执行,关键问题不是说他和CPU之间只有一条总线的问题,我们其实是可以在RAM的一个区域运行程序更改RAM的另外区域的。之所以Flash不能这样做是因为Flash在擦除和写入过程中有一段时间读出的数据并不是对应单元的数据,而是状态数据。而且通常是很长的一片(64K),甚至整个芯片地址范围都是。因此当CPU执行擦除或者写入后,读取Flash中的下一条指令时,读出的是Flash状态,而不是正确的指令,当然就飞了!” 请问高手,这段话对不对啊,现在的我应当怎么做才能既能执行指令又能写入参数呢?项目7月初就要交货,目前非常焦急,肯请大家帮忙!!! |