第02章 FreeRTOS基础介绍
约 540 字大约 2 分钟
2026-01-19
官网地址:https://freertos.org
仓库地址:https://github.com/FreeRTOS/FreeRTOS
2.1 多任务处理

2.2 任务调度
抢占式调度:

时间片轮询:

2.3 任务状态
运行态:当任务实际执行时,它被称为处于运行状态。如果运行 RTOS 的处理器只有一个内核, 那么在任何给定时间内都只能有一个任务处于运行状态。注意在STM32中,同一时间仅一个任务处于运行态。
就绪态:准备就绪任务指那些能够执行(它们不处于阻塞或挂起状态), 但目前没有执行的任务, 因为同等或更高优先级的不同任务已经处于运行状态。
阻塞态:如果任务当前正在等待延时或外部事件,则该任务被认为处于阻塞状态。
挂起态:类似暂停,调用函数 vTaskSuspend() 进入挂起态,需要调用解挂函数vTaskResume()才可以进入就绪态。


2.4 上下文切换
保存被挂起的任务的上下文和恢复被恢复的任务的上下文的过程被称为 上下文切换。
2.5 FreeRTOS的滴答
FreeRTOS 实时内核通过滴答计数变量测量时间。定时器中断(RTOS 滴答 中断)以严格的时间精度增加滴答数——允许实时内核以所选择的定时器中断频率的分辨率来测量时间。
2.6 空闲任务
RTOS 调度器启动时,自动创建空闲任务,以确保始终存在一个能够运行的任务。
空闲以最低优先级创建,以确保如果有更高的优先级应用程序任务处于准备就绪状态,空闲任务则不使用任何 CPU 时间。
空闲任务负责释放被删除的任务的内存。
