📘 FreeRTOS实战项目
从设计到交付
🧩 30章 · 智能家居网关
01
项目全景与开发环境搭建
FreeRTOS简介
STM32平台
Keil/CubeIDE
源码移植
02
任务管理基础
xTaskCreate
优先级堆栈
任务状态
LED串口实战
03
任务调度机制
抢占式/时间片
调度器启停
空闲钩子
优先级观察
04
队列(Queue)通信
xQueueSend
阻塞时间
队列集
按键驱动LED
05
信号量(Semaphore)
二值/计数/互斥
优先级反转
中断同步
06
事件组(Event Group)
事件位设置/等待
与/或模式
多传感器报警
07
任务通知(Notification)
轻量级信号量
xTaskNotify
性能对比
按键控制
08
软件定时器(Timer)
回调函数
自动重载/单次
守护任务
周期采集
09
中断管理
优先级配置
延迟中断处理
FromISR
外部中断
10
内存管理
heap_1~5
内存碎片
堆栈溢出检测
动态优化
11
低功耗管理(Tickless)
Tickless模式
睡眠/唤醒
电池优化
12
多核与MPU支持
SMP简介
MPU保护
场景分析
13
项目架构设计
模块划分
任务职责
数据流图
状态机
14
硬件驱动层封装
GPIO/UART/I2C/SPI
HAL封装
设备抽象
15
传感器数据采集任务
DHT11/BH1750
滤波校准
周期堆栈优化
16
显示任务(OLED)
SSD1306驱动
多级菜单
实时刷新
17
通信任务(UART/Wi-Fi)
AT指令解析
ESP8266/32
MQTT移植
云上报
18
本地控制任务
按键消抖
继电器/电机
温度自动开风扇
19
远程控制与OTA
云端指令
远程配置
固件升级
APP控制
20
系统监控与日志
任务状态监控
运行时统计
环形缓冲区
21
错误处理与异常恢复
configASSERT
看门狗
任务重启
崩溃恢复
22
单元测试与集成测试
Unity/CMock
任务模拟
队列/信号量测试
23
性能分析与优化
Tracealyzer
CPU占用率
临界区优化
降低20%
24
代码规范与文档
Doxygen
Git版本
Changelog
README
25
硬件调试与逻辑分析仪
逻辑分析仪
UART/I2C时序
JTAG/SWD
排查I2C
26
EMC与可靠性设计
电源去耦
IO保护
看门狗
EFT测试
27
生产测试与校准
产测固件
校准参数
批量烧录
28
项目交付与维护
固件版本管理
现场排查
远程日志
偶发死机
29
进阶:FreeRTOS+TCP/IP
轻量级TCP/IP
HTTP/WebSocket
本地Web配置
30
课程总结与未来展望
项目复盘
坑点汇总
SMP/异构
学习资源