【发布时间】:2017-09-25 22:25:27
【问题描述】:
我正在使用具有 ARM Cortex M3 内核的非常定制的非公共安全 IC。
如果发生硬件安全违规,该 IC 会触发 NMI 中断,所以没关系,我正在做任何我需要违规的事情。
但它总是在发生违规时一次又一次地进入NMI Handler。
我们可能需要清除中断挂起标志不确定但应该直接清除。 因为 SCB->ICSR bit31 表示“进入处理程序会清除该位为 0”。
我还尝试使用 NVIC_ClearPendingIRQ() 清除挂起标志,但它不接受负 IRQ 值,而 NMI 为 -14。
我尝试手动设置 NVIC->ICPR[0] = (1
触发通用 Cortex M NMI 中断的自定义 IC 和自定义外部事件可能是 IC 的特定情况,但 NMI 是否有任何限制,例如“您无法清除 NMI 挂起标志,您必须将其重置 bla bla “?
谢谢
【问题讨论】:
-
与任何中断一样,您需要从源中清除它,否则它可能会重新触发,具体取决于中断管理器/处理程序 cpu 内核等的设计......
-
这将在你的 IC 部分,而不是 arm IP。
标签: arm interrupt-handling cortex-m3