"中断是硬件或软件向CPU发出的一个异步事件请求,让CPU暂停当前任务去处理更紧急的事件,处理完后再恢复原任务。"
分步详解(加分项)
-
中断源请求:外设(如定时器、UART、GPIO)或软件触发中断信号,发送给中断控制器(如NVIC)。
-
中断控制器仲裁:NVIC检查该中断是否被使能、优先级是否足够高、是否有更高优先级中断正在处理。若通过,则向CPU核心发送中断请求。
-
CPU硬件自动响应:CPU在当前指令执行完毕后,识别中断信号,自动完成:
-
压栈保存现场(PC、LR、PSR等寄存器);(寄存器上下文保存)
-
根据中断号从中断向量表取出ISR入口地址;(栈指针地址切换)
-
跳转执行ISR。
-
-
执行ISR:程序员编写的C函数,做必要处理(清标志、读数据、设置标志等),要求短小快速。
-
中断返回 :ISR执行
BX LR或等效指令,CPU硬件出栈恢复现场,继续执行原任务。