Arm 手臂皮层M不可屏蔽中断是否也不可清除?

Arm 手臂皮层M不可屏蔽中断是否也不可清除?,arm,interrupt-handling,cortex-m3,Arm,Interrupt Handling,Cortex M3,我正在与一个非常定制,而不是公共安全的IC,它有ARM Cortex M3核心 在硬件安全违规的情况下,该IC触发NMI中断,所以它是好的,我正在做任何我需要违规的事情 但当发生冲突时,它总是一次又一次地进入NMI处理程序 我们可能需要清除中断挂起标志(不确定),但应该直接清除。 因为SCB->ICSR位31表示“输入处理程序会将该位清除为0” 我还尝试使用NVIC_ClearPendingIRQ()清除挂起标志,但当NMI为-14时,它不接受负IRQ值 我试图手动设置NVIC->ICPR[0]

我正在与一个非常定制,而不是公共安全的IC,它有ARM Cortex M3核心

在硬件安全违规的情况下,该IC触发NMI中断,所以它是好的,我正在做任何我需要违规的事情

但当发生冲突时,它总是一次又一次地进入NMI处理程序

我们可能需要清除中断挂起标志(不确定),但应该直接清除。 因为SCB->ICSR位31表示“输入处理程序会将该位清除为0”

我还尝试使用NVIC_ClearPendingIRQ()清除挂起标志,但当NMI为-14时,它不接受负IRQ值


我试图手动设置NVIC->ICPR[0]=(1NMI的作用与这里的任何其他中断一样

从:

  • 对于电平敏感中断,当处理器从ISR返回时,NVIC对中断信号进行采样 断言后,中断状态变为挂起,这可能会 使处理器立即重新输入ISR。否则 中断状态变为非活动状态
  • 对于脉冲中断,NVIC继续监测中断信号,如果这是脉冲,则中断状态变为 挂起和活动。在这种情况下,当处理器从 ISR中断状态更改为挂起,这可能导致 处理器立即重新进入ISR
这意味着,除非清除生成中断请求的硬件状态,否则中断将再次挂起

清除中断挂起状态仅允许在请求已被清除的情况下禁用IRQ


有关您的安全设备如何运行的详细信息,您需要与您的供应商沟通。他们可能对您在这里讨论他们的产品不满意…

对于任何中断,您需要从源代码中清除它,否则它可能会重新触发,具体取决于中断管理器/处理器cpu核心等的设计…这将在您的部分中IC,而不是arm IP。