Arm® Cortex®-M4F 处理器会锁存所有中断。外设中断会由于以下原因之一变为挂起状态:
- NVIC 检测到中断信号被置为有效,且该中断未处于活动状态。
- NVIC 在中断信号上检测到上升沿。
- 软件写入相应的中断设置挂起寄存器位,或写入软件触发中断寄存器 (STIR) 来生成软件中断挂起状态(请参阅节 5.2.1中的 NVIC_ISPR0 SETPENDn 寄存器位或 STIR INTID 寄存器字段)。
挂起中断一直保持挂起,直到发生以下情况之一:
- 处理器进入中断的 ISR,将中断状态从挂起变为活动状态。然后:
- 对于电平敏感型中断,当处理器从 ISR 返回时,NVIC 采样中断信号。如果该信号被置为有效,中断状态将变为挂起,这可能导致处理器立即重新进入 ISR。否则,中断变为非活动状态。
- 对于脉冲中断,NVIC 会持续监测中断信号,如果该信号出现脉冲,中断状态将变为挂起且活动状态。在此情况下,当处理器从 ISR 返回时,中断状态将变为挂起,这可能导致处理器立即重新进入 ISR。如果在处理器处于 ISR 期间中断信号未出现脉冲,当处理器从 ISR 返回时,中断状态将变为非活动。
- 软件写入相应的中断清除挂起寄存器位:
- 对于电平敏感型中断,如果中断信号仍然置为有效,中断状态不会改变。否则,中断变为非活动状态。
- 对于脉冲中断,如果状态为挂起,则中断状态变为非活动;如果状态为活动且挂起,则变为活动。