FreeRTOS任务调度与优先级设计

📚 共计 30 章节
01
RTOS基础概念
什么是实时操作系统 · 前后台系统对比 · FreeRTOS简介
概念入门
02
任务创建与管理
任务函数原型 · xTaskCreate详解 · 参数传递 · 任务句柄
API核心
03
任务状态与状态迁移
就绪态 · 运行态 · 阻塞态 · 挂起态 · 状态转换图
状态机调度
04
任务优先级机制
优先级数值含义 · 调度关系 · configMAX_PRIORITIES
优先级配置
05
抢占式调度原理
调度器启动 · Tick中断 · 任务切换 · 时间片轮转
抢占内核
06
协作式调度模式
协程概念 · taskYIELD() · 主动让权 · 适用场景
协作调度
07
空闲任务与钩子函数
空闲任务作用 · 钩子配置 · 低功耗实现思路
空闲钩子
08
任务删除与堆栈管理
vTaskDelete · 堆栈估算 · 溢出检测方法
堆栈安全
09
任务通知
轻量级IPC · xTaskNotifyGive/ulTaskNotifyTake · 与信号量对比
通知IPC
10
队列基础
xQueueCreate · xQueueSend · xQueueReceive · 阻塞机制
队列通信
11
队列进阶
队列集(Queue Set) · 多队列等待 · 使用注意事项
队列集进阶
12
信号量
二值信号量 · 计数型 · 创建使用 · 典型同步场景
信号量同步
13
互斥量与优先级继承
互斥量特性 · 优先级翻转 · 继承机制 · 死锁预防
互斥继承
14
递归互斥量
递归锁场景 · xSemaphoreCreateRecursiveMutex · 加锁解锁配对
递归互斥
15
事件组
事件位概念 · xEventGroupCreate · 设置/等待/清除 · 多事件同步
事件组同步
16
软件定时器
定时器创建 · 自动重载/单次 · 回调函数 · 服务任务
定时器软件
17
任务通知进阶
通知值累加 · 设置 · 覆盖 · 读取
通知进阶
18
流缓冲区
Stream Buffer概念 · xStreamBufferCreate · 发送接收 · 触发级别
缓冲区
19
消息缓冲区
Message Buffer与流区别 · 变长消息 · xMessageBufferSend
消息缓冲区
20
内存管理方案
heap_1~heap_5对比 · 适用场景 · 内存碎片问题
内存heap
21
临界区与中断管理
taskENTER_CRITICAL/EXIT · 中断嵌套 · 延迟中断处理
临界区中断
22
中断安全API
FromISR系列函数 · 中断中发送队列/信号量 · 延迟工作
ISR安全
23
Tickless低功耗模式
configUSE_TICKLESS_IDLE · 自动休眠唤醒 · 功耗实测
低功耗Tickless
24
任务堆栈深度测量
uxTaskGetStackHighWaterMark · 使用率监控 · 优化建议
堆栈监控
25
运行时统计
vTaskGetRunTimeStats · 时间统计配置 · CPU占用率分析
统计性能
26
Trace与调试
FreeRTOS+Trace · vTaskList/vTaskGetInfo · 调试技巧
调试Trace
27
多核与AMP架构
FreeRTOS SMP · 任务亲和性 · 核间通信
多核SMP
28
安全关键系统
SafeRTOS · MISRA-C规范 · 功能安全考量
安全MISRA
29
实战项目一:多任务温湿度采集
传感器读取 + LCD显示 + 按键响应
实战温湿度
30
实战项目二:智能小车控制系统
电机控制 + 避障 + 蓝牙遥控 + 优先级设计
实战小车