嵌入式内存管理探究-基于FreeRTOS

本文深入探究基于FreeRTOS的嵌入式内存管理,重点介绍heap_5算法。该算法通过创建内存块链表实现内存申请和释放,有效减少内存碎片并提供故障定位能力。内存块由指针、大小信息和数据区域组成,初始化时建立内存池链表。内存申请和释放过程中,算法会根据需求调整内存块,并进行必要的内存分隔和合并操作。常见问题涉及内存块大小、字节对齐及链表结构选择。
摘要由CSDN通过智能技术生成

嵌入式内存管理探究-基于FreeRTOS

文章封面

文章封面

本文基于嵌入式裸机或RTOS系统下内存管理方法的探究,灰色方块为正在使用的内存块,白色为可用内存块。 好的内存管理算法,有以下几个特征:

  1. 内存碎片化小

  2. 故障调试能力:发生内存泄漏和踩踏时,可追溯位置,便于定位故障

  3. 管理成本小:管理的代码本身占用空间小,从空间复杂度

  4. 申请和释放效率高:时间复杂度

FreeRTOS的heap_5算法

  • 相比 heap_4 支持地址不连续的两个内存区域,比如芯片内置RAM+外挂SDRAM。

  • 基本思想:创建一个可用内存块链表,内存申请时从链表的内存块中取,释放时,将内存块重新加入到链表

  • 链表中的每块内存由三部分组成:
    1. 指向下一个内存块的指针;

    2. 此内存块的可用空间大小;

    3. 可用的内存数据区域;

1-1 基本数据结构

内存块管理

typedef struct A_BLOCK_LINK
{
 struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */
 siz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值