当 cortex-m 正在执行较高优先级的故障处理程序时,来自外设的较低优先级中断发生时会发生什么?它会被忽略还是会触发硬故障?
如果正在服务较高优先级的中断,则较低优先级的中断将保持待处理状态。一旦较高优先级的 ISR 完成,较低优先级的中断将得到服务。
此外,Cortex-M CPU 有一个称为尾链的功能。这意味着当高优先级 ISR 完成时,它不需要从堆栈中弹出所有保存的寄存器,只需在低优先级 ISR 运行时再次压入它们即可。相反,较低优先级的 ISR 会被直接调用,然后当它退出时,它将弹出保存的寄存器。