请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:RM48L952 主题中讨论的其他器件:UNIFLASH
您好!
在刷新包含中断向量的闪存组时、我在处理中断时遇到问题。
我们在闪存组0的前两个扇区中运行引导加载程序、然后在其余扇区中运行应用程序。 应用程序需要使用嵌套中断、因此我们将使用 IRQ 调度模式、请遵循 TI 应用手册。 引导加载程序中断向量都仅在应用程序开始时分支到向量、如另一个 TI 应用手册所述。
引导加载程序运行从 RAM 重新编程期间所需的所有代码、并使用 RTI 计时器中断定期为 TPS65381看门狗提供服务。 我已经将 RTI 计时器设置为使用 FIQ、因为我们正在为应用程序代码使用调度模式 IRQ。 但是、一旦触发 RTI 中断、闪存编程序列启动、引导加载程序就会崩溃。
如果我理解正确、则会出现此问题、因为您在写入闪存组时无法从闪存组执行代码(包括中断矢量)。 为了解决此问题、我尝试使用参数覆盖模块将对中断矢量的访问重定向到 RAM 副本。 遗憾的是、当闪存编程开始后触发 RTI 中断时、这仍然会由于预取中止而崩溃。 如果我们禁用 RTI 计时器和看门狗、则重新编程成功完成。
我不知道为什么我看到这个问题(就我所能告诉的那样)、我当时没有运行闪存中的任何内容。 这是一种在引导加载程序中使用中断的明智方法、还是有另一种更好的方法?
非常感谢