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

嵌入式内存管理探究-基于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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值