📘 工业MCU · RTOS 调度与共享
🎯 30章 · 任务调度 & 资源共享
基于抢占式 / 协作式内核
适合STM32 / 多核MCU
#友好色系
📁 共30个章节 · 点击卡片跳转
01
RTOS概述
为什么需要RTOS
RTOS与裸机开发的本质区别 · 工业MCU实时性需求
02
任务与任务控制块
TCB
状态机模型 · 就绪/运行/阻塞/挂起 · TCB数据结构
03
任务创建与删除
栈策略
动态 vs 静态创建 · 任务栈分配与溢出检测
04
任务调度算法 (上)
抢占+时间片
基于优先级的抢占式 · 时间片轮转 · 策略选择
05
任务调度算法 (下)
协作+空闲
协作式与混合调度 · 空闲任务 & 钩子函数
06
上下文切换
PendSV
PendSV异常 · 寄存器压栈/出栈 · FPU保存恢复
07
临界区保护
关中断/锁调度
关开中断 · 锁调度器 · 嵌套计数器设计
08
信号量 (上)
二值/计数
二值信号量与计数信号量 · 等待队列内部机制
09
信号量 (下)
优先级继承
优先级反转 · 继承协议 · 互斥信号量特殊处理
10
消息队列
环形缓冲区
环形缓冲区设计 · 同步/异步发送 · 阻塞超时
11
事件标志组
独立/组合
独立型与组合型事件 · 超时与清除机制
12
任务通知
轻量级IPC
代替信号量/消息队列的场景分析
13
软件定时器
回调上下文
回调执行上下文 · 定时器命令队列设计
14
内存管理 (上)
静态/动态
静态内存池 · 动态堆 (First Fit / Best Fit)
15
内存管理 (下)
MPU隔离
内存碎片 · MPU在任务隔离中的应用
16
中断管理
嵌套与安全
中断嵌套/优先级分组 · 中断中释放信号量
17
低功耗设计
Tickless
Tickless模式 · WFI指令 · 空闲任务低功耗
18
多核与AMP架构
核间通信
非对称多处理 · 任务分配 · IPC与共享内存
19
任务栈分析与优化
水印检测
栈使用率统计 · 静态分析/水印检测
20
死锁与活锁
银行家算法
四个必要条件 · 银行家算法简化实现
21
优先级反转深度分析
案例复盘
真实案例 · 如何通过设计避免反转
22
实时性分析
WCET/RTA
最坏情况执行时间估算 · 响应时间分析公式
23
RTOS内核裁剪
配置宏
裁剪功能 · 减小ROM/RAM占用
24
任务间数据共享
无锁编程
全局变量保护 · 双缓冲 · 原子操作
25
看门狗与任务监控
心跳检测
硬件/软件看门狗 · 任务死锁自动恢复
26
Bootloader与RTOS
向量表重定位
跳转注意事项 · 中断向量表重定位
27
调试与追踪
JTAG/SWD
RTOS感知调试 · Tracealyzer追踪工具
28
安全关键系统
MISRA-C
MISRA-C · IEC 61508 / ISO 26262要求
29
实战案例 (一)
STM32采集器
工业数据采集 · 多任务设计(采集/处理/通信/显示)
30
实战案例 (二)
多核伺服驱动器
多核MCU · 任务划分与核间同步完整方案