1 heap_4内存分配方法介绍-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

heap_4内存分配方法介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-30 10:42 次阅读

heap_4 内存分配方法

heap_4 提供了一个最优的匹配算法,不像 heap_2,heap_4 会将内存碎片合并成一个大的可用内存块,它提供了内存块合并算法。内存堆为 ucHeap[],大小同样为 configTOTAL_HEAP_SIZE。可以通过函数 xPortGetFreeHeapSize()来获取剩余的内存大小。

heap_4 特性如下:

1、可以用在那些需要重复创建和删除任务、队列、信号量和互斥信号量等的应用中。

2、不会像 heap_2 那样产生严重的内存碎片,即使分配的内存大小是随机的。

3、具有不确定性,但是远比 C 标准库中的 malloc()和 free()效率高。

heap_4 非常适合于那些需要直接调用函数 pvPortMalloc()和 vPortFree()来申请和释放内存 的应用。

heap_4 也使用链表结构来管理空闲内存块,链表结构体与 heap_2 一样。heap_4 也定义了两个局部静态变量 xStart 和 pxEnd 来表示链表头和尾,其中 pxEnd 是指向 BlockLink_t 的指针。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304797
  • 内存
    +关注

    关注

    8

    文章

    3019

    浏览量

    74003
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62139
收藏 人收藏

    评论

    相关推荐

    C语言知识总结:动态内存分配

    动态内存分配就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存方法。动态
    发表于 10-24 15:52 855次阅读

    基于FreeRTOS的STM32F103系统—Heap_4内存管理机制介绍

    首先介绍一下用到的重要的结构体-标记内存块,在每个存放数据的内存块前都会有一个这样的标记结构体。
    的头像 发表于 11-10 11:08 1297次阅读
    基于FreeRTOS的STM32F103系统—<b class='flag-5'>Heap_4</b><b class='flag-5'>内存</b>管理机制<b class='flag-5'>介绍</b>

    基于FreeRTOS内存管理Heap_4.c的实现方法

    一下,哈哈。 既然是在FreeRTOS内存管理Heap_4.c的基础上稍稍修改的,那还是先介绍一下它的实现方法吧:以下为转载内容,原文链接:http://xilinx.eetrend.
    发表于 07-15 21:46

    基于嵌入式裸机或RTOS系统下内存管理方法的探究

    小故障调试能力:发生内存泄漏和踩踏时,可追溯位置,便于定位故障管理成本小:管理的代码本身占用空间小,从空间复杂度申请和释放效率高:时间复杂度FreeRTOS的heap_5算法相比 heap_4 支持地址不连续的两个
    发表于 12-17 07:40

    嵌入式系统内存分配方式是怎样的

    一篇讲透嵌入式系统内存分配方
    发表于 12-17 07:40

    FreeRTOS代码剖析之4内存管理Heap

    FreeRTOS8.0.1内存管理的最后一个堆模型Heap_4,貌似是在这一个版本才有的。所以找到的说明几乎没有。代码的开头注释也只是简单地说了一下实现了pvPortMalloc
    发表于 02-09 02:52 363次阅读

    FreeRTOS代码剖析之2:内存管理Heap

    在FreeRTOS8.0.1这个版本中,一共有四个内存堆模型。这一次讲的就是第二个模型Heap_2.c。从一开始就可以看到注释中对Heap_2的模型解释:这是对pvPortMalloc
    发表于 02-09 05:28 822次阅读
    FreeRTOS代码剖析之2:<b class='flag-5'>内存</b>管理<b class='flag-5'>Heap</b>

    浅谈内存分配方式 避免内存浪费问题

    说到内存分配方式,就不得不提连续分配方式。这种方式是指为一个用户程序分配一个连续的内存空间,它曾被广泛的用于20世纪60~70年代的OS中
    发表于 03-03 11:22 1443次阅读

    什么是堆内存?堆内存是如何分配的?

    在一般的编译系统中,堆内存分配方向和栈内存是相反的。当栈内存从高地址向低地址增长的时候,堆内存从低地址向高地址
    的头像 发表于 07-05 17:58 9970次阅读

    STM32内存结构介绍,FreeRTOS内存分配技巧,Stack_Size和Heap_Size大小设置

    STM32内存结构介绍和FreeRTOS内存分配技巧这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的
    发表于 12-09 13:51 18次下载
    STM32<b class='flag-5'>内存</b>结构<b class='flag-5'>介绍</b>,FreeRTOS<b class='flag-5'>内存</b><b class='flag-5'>分配</b>技巧,Stack_Size和<b class='flag-5'>Heap</b>_Size大小设置

    heap_1内存分配方法

    heap_1 内存分配方法 动 态 内 存 分 配 需 要 一 个 内 存 堆 , FreeRTOS 中 的 内 存 堆 为 ucHeap[] , 大 小 为
    的头像 发表于 07-30 10:33 621次阅读

    heap_2内存的特性与分配方法

    heap_2 内存分配方法 heap_2 提供了一个更好的分配算法,不像 heap_1那样,
    的头像 发表于 07-30 10:36 642次阅读

    FreeRTOS heap_3内存分配方法

    heap_3 内存分配方法 这个分配方法是对标准 C 中的函数 malloc()和 free()的简单封装,FreeRTOS 对这两个函数做了线程保护。
    的头像 发表于 07-30 10:40 739次阅读
    FreeRTOS <b class='flag-5'>heap</b>_3<b class='flag-5'>内存</b><b class='flag-5'>分配方法</b>

    FreeRTOS heap_5内存分配方法介绍

    heap_5 内存分配方法 heap_5 使用了和 heap_4 相同的合并算法,内存管理实现起
    的头像 发表于 07-30 10:47 1058次阅读

    如何自定义内存控制器的设置

    在FreeRTOS中自定义内存控制器的设置,主要涉及到内存分配策略的选择和配置。FreeRTOS提供了多种内存分配策略,如
    的头像 发表于 09-02 14:28 456次阅读