我最近必须实现自己的 FIQ 处理程序、该处理程序在调试器中工作。 但是、在调试器之外、在电源复位之后、我会得到一个 CCMR4-COMPARE (ESM 组2)错误。 我认为这种情况的发生(在调试器之外很困难)与 _enable_FIQ ()内在函数调用同时发生。 我有办法忽略第一个 CCMR4-COMPARE 错误、应用程序将再次启动、但无法提供此变通办法。
是否有任何方法启用(和使用) FIQ 中断会导致 CCMR4比较错误、是否有任何方法可以避免该错误?
谢谢、
Jim
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我最近必须实现自己的 FIQ 处理程序、该处理程序在调试器中工作。 但是、在调试器之外、在电源复位之后、我会得到一个 CCMR4-COMPARE (ESM 组2)错误。 我认为这种情况的发生(在调试器之外很困难)与 _enable_FIQ ()内在函数调用同时发生。 我有办法忽略第一个 CCMR4-COMPARE 错误、应用程序将再次启动、但无法提供此变通办法。
是否有任何方法启用(和使用) FIQ 中断会导致 CCMR4比较错误、是否有任何方法可以避免该错误?
谢谢、
Jim
QJ、
感谢您的快速回复。 我们在启动序列中添加了一个引导加载程序(闪存升级)模块、因此我们的初始化序列与标准不同、但这基本上意味着我们只需初始化时钟、GIO、FlashECC、并且 CAN 比标准更早。 我在这个应用手册中注意到的一个问题是第31步--在设置 ESM 之前启用 ARM 中断,我尝试过它,但它没有解决这个问题。 基本上、我当前的修复方法是:
PreventCcmr4CompareErrors = true;
_enable_FIQ ();//清除 CPSR 中的 F 标志
PreventCcmr4CompareErrors = false;
此权变措施还不错(仅忽略一行代码的错误)、但理想情况下不需要此操作。 如果你有任何其他我可以查看或尝试的东西、我将不胜感激。
谢谢、
Jim