FreeRTOS-内存管理

一.内存管理简介

1.什么是内存管理

答:在FreeRTOS中创建任务、队列、信号量等对象时,一般分为两种方法:动态创建、静态创建  动态创建:FreeRTOS管理内存堆中自动分配创建所需的内存

静态创建:需要用户提供各种内存空间,使用静态方式占用内存空间一般固定下来了,即删除任务、队列等,这些占用的内存一般不会被用作其他用途,会一直放着。

2.FreeRTOS中5中动态内存管理算法:

二.内存管理相关API函数

1.申请内存   void *   pvPortMalloc(size_t xWantedSize)

xWantedSize:申请的内存大小,以字节为单位;

返回值:返回一个指针,指向已分配大小的内存  内存申请失败:返回NULL

2.释放内存 void    vPortFree(void * pv)

pv:指针指向一个要释放内存的内存块

3.获取当前空闲内存的大小 size_t xPortGetFreeHeapSize(void)

返回值:返回当前剩余的空闲内存大小

综合实验:

下图为FreeRTOS管理内存的大小为 3072 Kb (在FreeRTOSconfig.h中)

学习内存管理,观察内存在申请和释放过程中内存大小的变化

1.设计Task1:按下KEY0申请内存,按下KEY1释放内存,并打印剩余内存信息

2.CubeMX配置

如下图,是内存管理的相关配置,默认使用算法为heap_4

                                

3.代码部分:

现象:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值