📘 FreeRTOS 内存管理 策略·优化·实战

🎯 30 章 · 从入门到专家
01
FreeRTOS内存管理概述
为什么需要动态内存管理?内存碎片问题与实时系统的矛盾。
02
heap_1实现分析
最简单的分配策略,只分配不释放,适用场景与源码解析。
03
heap_2实现分析
最佳匹配算法,支持释放,但存在严重碎片问题。
04
heap_3实现分析
包装标准C库malloc/free,依赖编译器,线程安全由调度器保证。
05
heap_4实现分析
首次适应算法+合并机制,最常用的方案,源码深度解析。
06
heap_5实现分析
支持非连续内存区域,多块内存管理,实现跨区域分配。
07
内存对齐机制
FreeRTOS字节对齐要求,如何影响内存分配与结构体布局。
08
内存块链表结构
空闲块链表如何组织?如何遍历与查找?
09
内存分配与释放流程
从申请到返回的完整路径,锁机制与临界区保护。
10
内存碎片产生原理
内部碎片与外部碎片,为什么实时系统更怕碎片?
11
碎片整理策略
FreeRTOS为什么不支持碎片整理?替代方案有哪些?
12
内存池设计模式
固定大小块分配,消除碎片,适合周期性任务。
13
任务栈内存管理
任务栈分配策略,栈溢出检测与保护机制。
14
队列与信号量内存
内核对象内存分配,动态创建与静态创建的选择。
15
定时器与事件组内存
软件定时器、事件组的内存开销分析。
16
内存统计与诊断
uxFreeHeapSize、xPortGetFreeHeapSize等API使用。
17
内存泄漏检测
手动追踪与钩子函数,如何定位泄漏点?
18
内存使用率优化
减少碎片,提高利用率,实际项目调优案例。
19
静态内存分配策略
完全避免动态分配,使用静态创建API。
20
混合分配策略
动态与静态结合,关键任务用静态,非关键用动态。
21
内存保护单元(MPU)与内存管理
FreeRTOS MPU支持,如何隔离任务内存?
22
低内存设备优化
在RAM小于10KB的MCU上运行FreeRTOS的技巧。
23
内存分配超时处理
申请失败怎么办?重试机制与错误处理。
24
自定义内存分配器
如何编写自己的pvPortMalloc?接口与实现。
25
多核系统中的内存管理
SMP FreeRTOS的内存分配挑战。
26
内存屏障与缓存一致性
Cortex-M7等带缓存MCU的内存管理注意事项。
27
实时性能测试
不同heap实现的时间确定性分析,最坏情况执行时间。
28
内存调试工具
FreeRTOS+Trace、HeapInfo等工具的使用。
29
项目实战:智能家居网关
内存管理方案设计与优化。
30
项目实战:工业控制器
高可靠性要求下的策略选择。