FreeRTOS之内存分配策略与选择

本文详细介绍了FreeRTOS中heap1到heap5的内存分配策略,包括各自的特点和适用场景。Heap1仅分配不回收,适合简单程序;Heap2能分配回收但不处理碎片,适用于固定大小内存请求;Heap3依赖平台的malloc/free;Heap4尝试合并碎片,适用于各种场景;Heap5支持多堆区并优化了碎片管理。所有heap均使用统一接口pvPortMalloc和vPortFree,便于切换内存类型。
摘要由CSDN通过智能技术生成

包括heap1、heap2、heap3、heap4、heap5。

各heap的区别:

Heap1 Heap2 Heap3 Heap4 Heap5
分配 Malloc
回收 free
链接 按块大小升序链接 与平台相关 按地址升序链接 按地址升序链接
合并 与平台相关
内存 单堆区 单堆区 单堆区 单堆区 多堆区

各heap说明:
Heap1:

  • 只分配,不回收。
  • 适合不会执行删除任务、队列、信号量、互斥量等的程序。

Heap2:

  • 能分配,能回收。但是回收时不处理碎片。
  • 适合申请固定大小内存的工程。
  • 其工作原理:将内存块按块大小升序相连(块地址是混乱的),记录块信息的结构体空间会随着申请不断增加,并且不会得到释放,因为要通过这些块信息来链接。所以,如果没申请过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值