Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

本文介绍了Cortex-M内核中的中断处理和管理,包括NVIC组件的功能和中断的状态控制。中断可以被禁止或使能,可以被挂起或解除挂起,可以处于活跃或非活跃状态。中断的优先级由抢占优先级和响应优先级决定。

🎯

关键要点

  • Cortex-M内核中的中断处理和管理包括NVIC组件的功能和中断状态控制。
  • 中断可以被禁止、使能、挂起或解除挂起,且可以处于活跃或非活跃状态。
  • 中断的优先级由抢占优先级和响应优先级决定。
  • Cortex-M3和Cortex-M4的NVIC支持最多240个IRQ和多个系统异常,而Cortex-M0支持最多32个IRQ。
  • Cortex-M处理器的异常分为系统异常和中断输入,具有可编程的优先级。
  • CMSIS提供了一套中断编号系统,便于提高API效率。
  • 中断处理时,CPU暂停主程序执行,转而执行中断服务例程,处理完后返回主程序。
  • 中断管理使用NVIC和SCB中的寄存器,支持中断的使能、挂起和活跃状态。
  • 中断的挂起状态存储在NVIC的可编程寄存器中,处理器在处理中断时无法再次处理同一中断请求。
  • 即使中断被禁止,其挂起状态仍然可置位,需手动清除挂起状态以避免不必要的中断处理。
  • 高抢占优先级的中断可以打断低抢占优先级的中断,但相同抢占优先级的中断则需比较响应优先级。
➡️

继续阅读