专题导航
嵌入式系统FreeRTOS 基础 · 1/2FreeRTOS 任务状态与调度机制I2C 总线原理与工程实践FreeRTOS 任务基础
文章目录
嵌入式系统

FreeRTOS 任务基础

理解 FreeRTOS 任务的创建、运行与延时。

FreeRTOS 任务是由调度器管理的独立执行单元。任务函数通常使用无限循环,并在每次处理后主动阻塞。

任务模型

main.c
static void led_task(void *argument)
{
(void)argument;
for (;;) {
toggle_status_led();
vTaskDelay(pdMS_TO_TICKS(500));
}
}

vTaskDelay 让出 CPU,使其他就绪任务可以运行。它与忙等延时的资源消耗模式不同。

状态转换

stateDiagram-v2
    Ready --> Running: 获得 CPU
    Running --> Blocked: vTaskDelay
    Blocked --> Ready: 延时结束