ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
外设中断异常和系统异常会暂停处理器的正常执行流程,以便处理器可用于处理事件。
以下情况可能会导致正常执行流程中断:
异常由处理器和嵌套矢量中断控制器 (NVIC) 进行优先级排序。每个异常都有一个固定的优先级(复位、NMI、硬故障)或者一个可配置的优先级(SVCall、PendSV、SysTick、外设 IRQ)。具有可配置优先级的异常可由在特权模式下运行的应用软件禁用。具有固定优先级的异常无法禁用。
处理器异常模式支持占先、尾链和延迟到达功能,以提升异常处理性能:
如果满足以下所有条件,则会发出异常进入:
处理器异常是矢量异常。发生异常时,当前处理器状态会压入事件发生时处于活动状态的堆栈中,执行会被导引至矢量表中与要处理的异常所对应的入口点地址。
如果异常尾链接到已完成的前一个处理程序,则无需将任何状态压入堆栈,并且该异常可以立即被导引至中断服务例程。同样,如果异常的优先级高于先前启动进入但未完成进入的异常,则无需再次保存上下文(延迟到达)。
异常处理程序完成后,如果没有需要处理的异常挂起,处理器将从堆栈中弹出状态,并将处理器恢复到发生异常时的先前状态。