这个是STM32的定义和区分,可以看下
STM32 可支持 68 个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节 PRI_n(8 位,但是 STM32 中只使用 4 位,高 4 位有效),每 4 个通道的 8 位中断优先级控制字构成一个 32 位的优先级寄存器。 68 个通道的优先级控制字至少构成 17 个 32 位的优先级寄存器。
4bit 的中断优先级可以分成 2 组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,
4bit 一共可以分成 5 组
第 0 组:所有 4bit 用于指定响应优先级;
第 1 组:最高 1 位用于指定抢占式优先级,后面 3 位用于指定响应优先级;
第 2 组:最高 2 位用于指定抢占式优先级,后面 2 位用于指定响应优先级;
第 3 组:最高 3 位用于指定抢占式优先级,后面 1 位用于指定响应优先级;
第 4 组:所有 4 位用于指定抢占式优先级。
所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义 2 个优先级。
有几点需要注意的是:
1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;
2)抢占式优先级别相同的中断源之间没有嵌套关系;
3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。