1 优先级定义
在 NVIC 有一个专门的寄存器:中断优先级寄存器 NVIC_IPRx(在 F429 中, x=0...90)
用来配置外部中断的优先级, IPR 宽度为 8bit,原则上每个外部中断可配置的优先级为
0~255,数值越小,优先级越高。但是绝大多数 CM4 芯片都会精简设计,以致实际上支持
的优先级数减少,在 F429 中,只使用了高 4bit,如下所示:
表格 15 F429 使用 4bit 表达优先级
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
用于表达优先级 |
用于表达优先级的这 4bit,又被分组成抢占优先级和子优先级。如果有多个中断同时
响应,抢占优先级高的就会 抢占 抢占优先级低的优先得到执行,如果抢占优先级相同,就
比较子优先级。如果抢占优先级和子优先级都相同的话,就比较他们的硬件中断编号,编
号越小,优先级越高
总结:数值越小,优先级越高
2、优先级分组真值表
优先级分组 | 主优先级 | 子优先级 | 描述 |
NVIC_PriorityGroup_0 | 0 | 0-15 | 主-0bit,子-4bit |
NVIC_PriorityGroup_1 | 0-1 | 0-7 | 主-1bit,子-3bit |
NVIC_PriorityGroup_2 | 0-3 | 0-3 | 主-2bit,子-2bit |
NVIC_PriorityGroup_3 | 0-7 | 0-1 | 主-3bit,子-1bit |
NVIC_PriorityGroup_4 | 0-15 | 0 | 主-4bit,子-0bit |