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的可编程寄存器中,处理器在处理中断时无法再次处理同一中断请求。
- 即使中断被禁止,其挂起状态仍然可置位,需手动清除挂起状态以避免不必要的中断处理。
- 高抢占优先级的中断可以打断低抢占优先级的中断,但相同抢占优先级的中断则需比较响应优先级。
➡️