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.
您好!
我正在尝试使用 ccmSelfCheck() 函数(在 Halcogen 中生成)进行 CCM 自检。
当我在不处理 ESM 生成的中断的情况下执行自检(针对标志"CCM-R4F 自检错误"的低电平和针对"CCM-R4F -比较"的高电平)、自检通过正确(自检、错误强制和自检错误强制)。
但是、现在当我尝试对低电平中断执行一些处理时、当设置"CCM-R4F 自检错误"标志时、自检永远不会完成。 更精确地说、当 CCM 配置为 CCM 错误强制模式(CCMKEYR = 0x9U)时、会触发低电平中断、之后自检不会继续 (由于 CCM 的原因、不可能进入调试模式、因此很难知道实际发生了什么、但我当然知道代码的执行过程不会超过"while (CCMKEYR!= 0U){}")。
在处理低电平中断的函数中、我只是为了测试目的将引脚设置为高电平、所以我甚至不会清除 ESM 标志。 我不确定当高级中断变为 handeld 时会发生什么情况、因为这还不起作用、尽管我确定进入错误强制模式后测试了错误引脚、并且该引脚变为低电平、因此"CCM-R4F -比较"标志也会被置位 短时间内。
我的问题:
CCM 的自检是否可能不会中断? 这是否意味着我必须在启动 ccmSelfCheck()函数并稍后启用 IRQ 和 FIQ,因为我们的计划是在我们的应用程序中定期执行此自检?
提前感谢。
您好!
现在、我为高级中断提供服务的例程也起作用了、我认为我发现了问题是什么。
与此相关的代码片段:
当我在错误强制模式下配置 CCM 时、组2 ESM 标志被置位、并且我的中断例程被调用。 现在、如果我不清除已设置的 ESM 标志、中断例程将反复被调用(我在例程中切换了一个测试引脚以确认它)、并且我被卡住了。 正确的做法当然是清除触发中断的标志、如果我在我的例程内执行该操作、自检继续、在第77行中、条件检查是否正确的 ESM 标志在错误被强制后设置、但自从我们设置后 已清除中断例程中的该位该检查失败、我的自检失败。
问:
这个自检是否用于处理由 ESM 生成的中断? 如果是这样、那么可以在不更改 HALCOGEN 生成的代码的情况下完成此操作吗? 还有其他建议吗?
提前感谢、
Semir Spahic