在 FreeRTOS 中,内存管理算法的选择并非通过宏定义直接切换,而是通过将对应的堆实现源文件(heap_x.c)包含到项目中来实现。以下是详细步骤和注意事项:
1. 选择内存管理算法
FreeRTOS 提供了 5 种内存管理实现(heap_1.c 至 heap_5.c),每种的特点如下:
- heap_1: 仅分配,不释放(适用于静态内存场景)。
- heap_2: 支持分配和释放,但无碎片合并(已过时,推荐用
heap_4)。 - heap_3: 封装标准库的
malloc()/free()(依赖编译器的内存管理)。 - heap_4: 支持碎片合并,适用于长时间运行的任务。
- heap_5: 类似
heap_4,但支持非连续内存区域(如多块物理内存)。
2. 实现步骤
(1) 将对应源文件加入工程
- 将选定的
heap_x.c(如heap_4.c)添加到项目编译列表中。例如:FreeRTOS/Source/portable/MemMang/heap_4.c

最低0.47元/天 解锁文章
6035

被折叠的 条评论
为什么被折叠?



