📘 照明系统RTOS移植·实战
30章
🎯 风格 · 明快进阶
01
课程导论与开发环境搭建
照明系统智能化趋势 · RTOS选型分析(FreeRTOS/RT-Thread) · 开发板与工具链安装
02
RTOS核心概念速览
任务、调度器、临界区、内核对象在照明场景中的映射
03
裸机系统与RTOS系统对比
前后台系统痛点 · RTOS实时性与模块化优势 · 照明项目重构思路
04
移植前的硬件抽象层设计
GPIO、定时器、UART、PWM的HAL层封装,为RTOS移植铺路
05
FreeRTOS内核源码结构解析
关键文件(tasks.c、queue.c、list.c)功能与依赖关系
06
FreeRTOS移植第一步
修改portmacro.h与port.c,适配Cortex-M3/M4架构
07
FreeRTOS移植第二步
实现PendSV与SysTick中断服务函数,完成上下文切换
08
FreeRTOS移植第三步
配置FreeRTOSConfig.h,裁剪内核以适应资源受限MCU
09
RT-Thread内核启动流程分析
从汇编启动到main函数,理解自动初始化机制
10
RT-Thread移植实战
使用Env工具生成BSP,适配STM32系列MCU
11
RT-Thread设备驱动框架
PIN、UART、PWM设备驱动在照明控制中的注册与调用
12
照明任务划分与优先级设计
调光任务、通信任务、按键扫描任务的优先级与栈空间规划
13
任务间同步与通信
使用信号量实现按键防抖、使用消息队列传递调光指令
14
中断管理优化
将耗时中断处理转化为任务(Bottom Half),降低中断延迟
15
软件定时器应用
实现呼吸灯效果、定时巡检、OTA升级心跳包
16
内存管理优化
静态内存分配 vs 动态分配,避免碎片化的堆管理策略
17
低功耗管理
Tickless模式在照明设备(如感应灯)中的移植与功耗实测
18
多协议通信栈集成
在RTOS上移植BLE(Zephyr Stack)与Zigbee协议栈
19
Bootloader与OTA升级
基于RTOS的多分区固件升级设计与状态机实现
20
系统启动时间优化
链接脚本调整、快速初始化序列、外设预配置
21
任务栈溢出检测与调试
FreeRTOS栈溢出钩子、RT-Thread FinSH调试
22
实时性分析工具
Tracealyzer / SystemView 任务调度与延迟分析
23
临界区与锁的优化
减少关中断时间、使用无锁队列(Ring Buffer)提升性能
24
缓存一致性问题
带Cache的MCU(如STM32H7)上移植RTOS的注意事项
25
MPU/MMU保护机制
在FreeRTOS中启用MPU,隔离关键任务与用户任务
26
混合关键性系统设计
安全关键照明控制(应急灯)与普通功能隔离
27
单元测试框架集成
使用Unity/CMock对RTOS任务与驱动进行自动化测试
28
持续集成与自动化构建
Jenkins/GitHub Actions 编译多目标固件
29
量产烧录与生产测试
基于RTOS的生产自检程序设计与产线通信协议
30
综合项目实战
DALI-2
从零构建支持DALI-2协议的智能照明控制器(含完整源码分析)