LPC178x/177x Cortex-M3 中断优先级与活动状态管理

需积分: 48 185 下载量 162 浏览量 更新于2024-08-06 收藏 18.38MB PDF 举报
"中断优先级寄存器组是微控制器中用于管理中断优先级的重要机制,特别是在IBM BladeCenter管理模块的命令行界面参考指南中提到的LPC178x/177x系列Cortex-M3芯片。这些芯片支持32个中断优先级,其中5位用于实际的优先级表示,这5位被分为抢占优先级和子优先级两部分,由AIRCR寄存器中的位5设置优先级分组。" 在LPC178x/177x系列Cortex-M3芯片中,中断优先级寄存器组包括多个IPR(Interrupt Priority Register)寄存器,例如PRI_0、PRI_1和PRI_40,它们分别用于设置不同外设中断的优先级。例如,PRI_0用于设置外设中断#0的优先级,而PRI_40则用于设置外设中断#40的优先级。这些寄存器可以以字方式访问,尽管在用户手册中可能有不同的命名,如IPR0、IPR1等。 对于中断优先级的设置,可以通过修改AIRCR(Application Interrupt and Reset Control Register)寄存器来实现。在示例代码中,`SCB->AIRCR = (0x05FA) | (0x05 << 8);`这条指令将优先级分组设置在位5处,然后`NVIC->IPR4 = (0x01<< 3) << 16;`这一行代码设置了外部中断0的优先级,将其放在IPR4的[23:16]字段中。 中断的活动状态由IABR(Interrupt Active Bit Register)寄存器组记录。每个外部中断在IABR中都有一个相应的状态位,当中断发生时,对应的活动状态位被置1。一旦中断服务例程开始执行,这个位保持为1,即使中断被更高优先级的中断抢占,活动状态仍保持不变,直到中断完全处理完毕。IABR寄存器组包括IABR0、IABR1等,用于记录不同范围中断的活动状态。 LPC178x/177x系列Cortex-M3芯片支持41个向量中断,这意味着IPR0到IPR10是有效的中断优先级寄存器,而IABR0到IABR1则是有效的活动状态寄存器。此外,IABR7用于记录中断224到239的活动状态。 中断优先级寄存器组是微控制器核心功能的一部分,它确保中断能够按照预设的优先级顺序被响应和处理。理解如何配置这些寄存器对于高效且可靠的系统设计至关重要,特别是在需要精确控制中断处理流程的复杂嵌入式系统中。