首页 > 系统相关 >FreeRTOS 原理 --- heap 堆内存的使用

FreeRTOS 原理 --- heap 堆内存的使用

时间:2023-10-04 14:23:58浏览次数:48  
标签:链表 释放 FreeRTOS 申请 --- 块头 内存 heap 使用

FreeRTOS一共提供了5种申请内存的方案

heap1

只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高

使用场景:不需要频繁申请内存

heap2

能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表管理所有空闲内存块,释放内存时插入链表的规则是按内存块大小排序

使用场景:频繁申请释放同样大小的内存块,由于不需要合并操作,效率高。

heap3

使用编译器提供的标准C库的申请释放函数,一般不使用

heap4

能申请能释放,释放时能合并相邻空闲内存块。每个内存块都有一个内存块头,有一个链表管理所有空闲内存块,释放内存时插入链表的规则是按地址从小到大排序

使用场景:频繁申请释放大小不一的内存块

heap5

heap4只能管理一块连续的内存,heap5支持管理多块不连续的内存

使用场景:存在多块不连续的内存

 

标签:链表,释放,FreeRTOS,申请,---,块头,内存,heap,使用
From: https://www.cnblogs.com/god-of-death/p/17742214.html

相关文章

  • 数字图像处理-杨淑莹(二)
    噪声消除法对于二值图像上的噪声消除二值图像黑白点噪声滤波消除孤立黑像素点邻域平均法​ 如果各点噪声是独立等分布的,经过这种方法平滑后,信噪比提高,但是图像的边缘细节会变得很模糊3*3均值滤波超限邻域平均法N*N均值滤波器选择式掩模平滑-选择式掩模平滑制作9种窗口......
  • C/C++学习 -- 分组加密算法(DES算法)
    数据加密标准(DataEncryptionStandard,DES)是一种对称密钥加密算法,是信息安全领域的经典之作。本文将深入探讨DES算法的概述、特点、原理,以及提供C语言和C++语言实现DES算法的代码案例。一、DES算法概述DES算法是一种对称密钥加密算法,由IBM于1977年开发并于1977年被美国国家标准局(NI......
  • 2023-2024-1学年 学号20231317 《计算机基础与程序设计》第二周学习总结
    学期(如2023-2024-1)学号(如:20231317)《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第二周作业)这个作业的目标<分别......
  • 华为HCIA-VRP系统
    前言:交换机可以隔离冲突域、路由器可以隔离广播域;这两种设备在企业网络中应用也越来越广泛。随着越来越多的终端会接入到网络中,网络设备的负担也随之加重,这时候网络设备就可以通过华为专有的VRP系统来提升运行效率。通过路由平台VRP(VersatileRoutingPlatform)是华为公司数据......
  • 【matplotlib 实战】--平行坐标系
    平行坐标系是一种统计图表,它包含多个垂直平行的坐标轴,每个轴表示一个字段,并用刻度标明范围。通过在每个轴上找到数据点的落点,并将它们连接起来形成折线,可以很容易地展示多维数据。随着数据增多,折线会堆叠,分析者可以从中发现数据的特性和规律,比如发现数据之间的聚类关系。尽管平行......
  • CVE-2010-2883 学习记录(漏洞战争,启动!)
    格式分析Header:文件头,用来注明pdf文件版本号Body:主要由组成文件的对象组成,例如图片,文字Cross-regerencetable:交叉引用表,用于存放所有对象的引用、位置偏移、字节长度,用于随机访问pdf中的任意对象Trailer:文件尾,给出交叉引用表的位置(指针)和一些关键对象的信息(指针),......
  • 系统架构设计师历年(2009-2018)论文题目
    2009论文一:论基于DSSA的软件架构设计与应用论文二:论信息系统建模方法论文三:论基于REST服务的Web应用系统设计论文四:论软件可靠性设计与应用2010论文一:论软件的静态演化和动态演化及其应用论文二:论数据挖掘技术的应用论文三:论大规模分布式系统缓存设计策略论文四:论软件可靠性......
  • 在蓝图中使用flask-restful
    flask-restful中的Api如果传递整个app对象,那么就是整个flask应用都被包装成restful。但是,你可以只针对某个蓝图(django中的子应用)来进行包装,这样就只有某个蓝图才会被restful所包装。fromflaskimportFlask,Blueprintfromflask_restfulimportApi,Resource#flask对象实......
  • 中兴交换机MC-LAG配置(二)
    创建MC-LAG设备之间的PeerLink接口(创建peerlink接口:peerlink口需要透传所有业务VLAN)定义peerlink口的sginterface<smartgroupname>exitinterface<portname>noshutdownexitlacpinterface<smartgroupname>......
  • Bash-字符截取命令
    cut提取命令cut[选项]文件名选项-f列号:提取第几列-d分隔符:按照指定分隔符分割列例子:假设有xxx.txt文件,内容如下 cut-f2,4xxx.txt#提取第二列cut-d":"-f1#指定:分隔符,提取第一列 printf命令printf"输出类型输出格式"输出内容输出类型:%ns:输出......