第四节:FreeRTOS 内存管理

目录

内存管理的介绍

内存碎片

Heap_1-5内存分配的区别

Heap_1:适用于一旦创建好内存,就不删除的任务。       (本质是分配的大数组做内存堆.)

Heap_2:适用于重复分配和删除具有相同堆栈空间任务。(本质是分配的大数组做内存堆.)

Heap_3:为对内存空间的操作,简单的封装了malloc和free。具有线程保护,但无空闲内存合并。

Heap_4:内可将相邻的空闲内存合并。存储顺序小地址在前(本质是分配的大数组做内存堆.)

Heap_5:内存管理策略允许内存堆跨越多个非连续的内存,切需要初始化,其他和4相似。


内存管理的介绍

FreeRTOS创建任务、队列、信号量等的时候有两种方法

——动态申请所需要的RAM。

——静态方法自行创建“static”定义。

内存管理主要针对,FreeRTOS提供的5中内存管理策略讨论的。

总的来说heap1最简单,单只能申请不能释放。heap2提供了内存释放函数,但存在内存碎片问题。

heap3是对malloc和free的简单封装,提供线程保护。heap4提供了内存合并。heap5支持不连续内存块。

在使用中需要选取一种策略,使用者可以选择其中某一种。路径:FreeRTOS->Source->portable->MemMang.

 

 

 

 

内存碎片

内存碎片化是一个概念性的问题,指的是不合理的内存操作会导致内存碎片化,以至于最后有很多碎片化空间,

无法整块的分配内存。

内存碎片化:内存经过多次的申请和释放以后,会导致碎片化。

内存碎片化的危害:内存碎片化后,会导致虽然可用内存很多,但是可能导致连续的物理内存申请失败,无法内存分配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值