我正在使用一个MCF51EM256 Freescale微控制器,我在flash编程方面遇到了一些问题。
为了使我的软件持久,我试图将一些变量存储在外部闪存中,以便从意外关闭中恢复。
有时,当我测试我的工作关闭单片机,它是不断重置。这可能是由于在关机期间写入任何闪存地址时出错造成的,在关机后无法正确读取。
我的问题是,有一种方法可以抓住这个致命的异常,这会导致我的微电脑复位?
MCF51EM256参考手册
发布于 2016-05-06 08:54:25
如果所描述的行为确实是由您假设的原因引起的,您可以保护自己不使用不定期写入的值,在闪存结束时使用一个“神奇的单词”写到一个已知的位置。
在关机时,清除“魔术单词”,然后像前面那样闪烁存储的值,最后将“魔术单词”(像0x31419265)写到一个已知的闪存位置。
启动时,检查此值。如果它是您所期望的值,您可以使用其他变量,如果不是,您必须假设闪存失败并忽略它们(我假设您需要一些合理的缺省值)。
https://stackoverflow.com/questions/37067471
复制相似问题