⚙️ FreeRTOS 调度深度解析
📘 30章
🎒 友好 · 明快色系
1
FreeRTOS概述
什么是实时操作系统 · 发展历史与特点 · 应用场景
2
任务基础
任务概念 · 状态(运行/就绪/阻塞/挂起) · 优先级
3
任务创建与删除
xTaskCreate()详解 · 参数传递 · vTaskDelete()
4
任务控制块TCB
TCB结构体剖析 · 任务栈分配管理 · 上下文
5
调度器启动
vTaskStartScheduler()内部 · 空闲任务 · SysTick
6
优先级抢占调度
抢占规则 · 时间片轮转 · 调度点分析
7
时间片轮转
configUSE_TIME_SLICING · 时间片长度 · 切换时机
8
任务切换核心机制
PendSV异常 · 切换流程 · 寄存器保存与恢复
9
临界区与任务同步
taskENTER_CRITICAL / EXIT · 嵌套 · 中断屏蔽
10
调度器挂起与恢复
vTaskSuspendAll · xTaskResumeAll · 挂起调度
11
任务延时机制
vTaskDelay / vTaskDelayUntil · 延时列表 · 时间管理
12
阻塞态与延时列表
阻塞态本质 · 延时列表数据结构 · 插入与移除
13
就绪列表与调度决策
就绪列表数据结构 · 优先级位图 · 最高优先级任务
14
任务优先级修改
vTaskPrioritySet · 优先级反转 · 优先级继承
15
任务通知
任务通知概念 · xTaskNotifyGive / ulTaskNotifyTake · 通知值
16
队列基础
队列概念 · xQueueCreate · Send / Receive
17
队列阻塞机制
阻塞超时 · 多任务等待 · 队列集
18
信号量
二值/计数信号量 · xSemaphoreCreateBinary / Counting
19
互斥量与优先级继承
互斥量特点 · 优先级继承实现 · 死锁预防
20
递归互斥量
递归锁场景 · xSemaphoreCreateRecursiveMutex · 加解锁
21
事件组
事件组概念 · xEventGroupCreate · 事件位 · 等待多个事件
22
任务通知 vs 信号量
性能优势 · 局限性 · 选型建议
23
软件定时器
概念 · xTimerCreate · 回调函数 · 守护任务
24
内存管理方案
heap_1~heap_5对比 · heap_4合并算法 · 碎片问题
25
任务栈溢出检测
栈溢出机制 · uxTaskGetStackHighWaterMark · 栈估算
26
钩子函数
空闲钩子 · 定时器钩子 · 栈溢出钩子 · 配置
27
多核与AMP架构
AMP部署 · 任务绑定核心 · 核间通信
28
低功耗Tickless模式
Tickless原理 · configUSE_TICKLESS_IDLE · 唤醒
29
FreeRTOS+Trace
运行时跟踪 · 任务状态可视化 · 性能分析
30
综合实战:多任务温控系统
任务划分 · 优先级分配 · 调度优化 · 问题排查