在嵌入式系统开发领域,FreeRTOS 凭借其开源、轻量、高可靠性的特点,已成为最广泛应用的实时操作系统之一。随着多核微控制器(MCU)的大规模应用,FreeRTOS 也逐步扩展其调度机制,从经典的单核调度模型发展出对称多处理(SMP)与非对称多处理(AMP)架构下的多核调度支持。
一、单核调度策略:经典抢占式机制
FreeRTOS 的单核调度模式是其最基础也是最成熟的运行模式,具备如下关键特性:
-
固定优先级调度
任务在创建时指定优先级,调度器不会在运行过程中永久改变其优先级,仅在发生“优先级继承”时临时提升,用于避免优先级反转问题。 -
抢占式执行
调度器始终运行优先级最高且处于可运行状态的任务。一旦某中断服务程序(ISR)唤醒了一个更高优先级的任务,系统会立即中断当前正在运行的低优先级任务,实现毫秒级响应。 -
时间切片轮询
对同优先级任务,系统采用时间片轮转策略。在每个滴答时钟(tick)中断到来时,调度器检查是否需要在同优先级任务间切换,从而实现公平性。 -
配置项说明
调度策略主要通过配置文件 FreeRTOSConfig.h 控制: