实时操作系统堆栈溢出检测与内存保护
📚 共计 30 章节
01
RTOS内存管理基础
堆与栈的区别 · 任务栈分配机制 · 内存碎片化问题
内存
栈
碎片
02
栈溢出检测原理
硬件MPU/MMU机制 · 软件栈边界标记法 · 编译器插桩技术
MPU
边界标记
插桩
03
FreeRTOS栈溢出检测
configCHECK_FOR_STACK_OVERFLOW钩子 · uxTaskGetStackHighWaterMark()
FreeRTOS
钩子
高水位
04
内存保护单元(MPU)实战
ARM Cortex-M MPU配置 · 特权/非特权隔离 · 内存区域属性
MPU
Cortex-M
隔离
05
堆内存管理策略
静态vs动态分配 · 内存池设计 · 伙伴算法与slab分配器
堆
伙伴算法
slab
06
栈回溯与调试
异常栈回溯原理 · GDB调试技巧 · 栈帧分析工具
调试
GDB
栈帧
07
内存泄漏检测
静态分析工具 · 运行时追踪 · 内存池泄漏检测
泄漏
静态分析
追踪
08
任务栈大小估算
递归深度分析 · 中断嵌套栈需求 · 局部变量占用计算
栈大小
递归
中断
09
看门狗与内存保护
硬件看门狗联动 · 内存访问违例处理 · 系统恢复机制
看门狗
恢复
违例
10
多核系统内存保护
共享内存保护 · 缓存一致性 · 原子操作与内存屏障
多核
缓存
屏障
11
安全关键系统内存保护
MISRA-C规范 · IEC 61508/ISO 26262 · 内存分区技术
安全
MISRA
分区
12
RTOS内存保护案例
FreeRTOS+MPU · Zephyr内存域 · ThreadX安全内存
案例
Zephyr
ThreadX
13
栈溢出攻击防护
栈不可执行(NX) · 栈金丝雀(Canary) · ASLR技术
安全
Canary
ASLR
14
实时性对内存保护的影响
内存保护开销分析 · 时间确定性 · 最坏情况执行时间(WCET)
实时
WCET
开销
15
内存保护硬件加速
TCM紧耦合内存 · Cache锁定 · DMA内存保护
TCM
Cache
DMA
16
动态内存分配器实现
FreeRTOS heap_1~heap_5分析 · 自定义分配器设计
分配器
heap
FreeRTOS
17
内存池管理
固定大小块分配 · 内存池初始化 · 分配与释放操作
内存池
固定块
效率
18
栈溢出检测工具
PC-Lint/Coverity · Valgrind/KASan · 动态分析
工具
Valgrind
KASan
19
RTOS内存保护配置
链接脚本内存布局 · MPU区域配置 · 任务栈对齐
链接脚本
MPU
对齐
20
异常处理与内存保护
HardFault处理 · MemManage Fault · Bus Fault处理
异常
HardFault
MemManage
21
内存保护测试
单元测试框架 · 压力测试 · 边界条件测试
测试
压力
边界
22
低功耗模式内存保护
睡眠模式内存保持 · 唤醒后恢复 · DMA传输保护
低功耗
睡眠
DMA
23
内存保护与任务调度
任务切换MPU上下文 · 优先级反转与内存保护
调度
上下文
反转
24
C++在RTOS中的内存保护
异常安全 · RAII与内存管理 · 智能指针使用
C++
RAII
智能指针
25
内存保护与通信
消息队列内存保护 · 共享内存同步 · RPC内存管理
通信
队列
RPC
26
RTOS内存保护调试
JTAG/SWD调试 · 内存断点 · 实时追踪(ETM/ITM)
调试
JTAG
ETM
27
内存保护性能优化
内存访问模式优化 · Cache友好设计 · 预取与预加载
优化
Cache
预取
28
安全启动与内存保护
信任根 · 安全固件更新 · 运行时完整性检查
安全启动
信任根
完整性
29
内存保护标准与认证
IEC 62304医疗 · DO-178C航空 · IEC 62443工业
标准
认证
DO-178C
30
未来趋势
RISC-V PMP · CHERI能力硬件 · 形式化验证内存安全
RISC-V
CHERI
形式化