在FreeRTOS中,针对ARM Cortex-M架构,SVC、SysTick和PendSV的优先级配置需遵循以下原则以确保系统高效运行:
优先级配置详解
-
优先级规则
- 数值越低,优先级越高(Cortex-M默认设定)。
- 硬件中断(如DMA、UART)通常配置为最高优先级(数值0~4),确保实时性。
- 系统异常(SVC、SysTick、PendSV)需平衡响应效率与调度安全。
-
默认优先级排序
- 硬件中断 > SVC > SysTick ≥ PendSV
- PendSV:设为最低优先级(如15),确保上下文切换在所有中断完成后执行,避免打断关键操作。
- SysTick:优先级略高于PendSV(如10~15),用于触发调度检查,但实际切换由PendSV延迟处理。
- SVC:较高优先级(如1~5),处理同步系统调用(如任务创建),需快速响应但低于硬件中断。
- 硬件中断 > SVC > SysTick ≥ PendSV
-
配置代码示例