优先级
2025/8/22大约 1 分钟
优先级
Cortex-M 硬件中断优先级
cortex-m处理器有 每个中断 都有8位的优先级寄存器,这些寄存器可以每4个看作一个32位的寄存器来访问

特殊例子

根据SCB里面的AIRCR寄存器,可以将8位优先级进行分组,也就是划分抢占优先级和子优先级

可以看见,抢占优先级最多是7位,子优先级最少有1位,bit0是子优先级

芯片厂家不会全部用,8位优先级只会用一部分,比如用3位

STM32使用的是4位优先级,是高位,bit7-4,可以全为抢占或者 子优先级,一共有5组,0-4;第四组全是抢占优先级,是freeRTOS要的
第四组一共有16位抢占优先级,使用起来简单

FreeRTOS 任务优先级
//任务优先级
#define INTERRUPT_TASK_PRIO 2范围:0 ~ (configMAX_PRIORITIES-1),纯粹是软件定义的整数。
含义:谁能先占 CPU 时间片。
内核调度器用 数字大小 直接比较决定:大 → 优先级高。
和硬件中断没有直接关系。

