FreeRTOS(四)——内存管理

概述

标准的内存函数是malloc和free,但是对于嵌入式系统来说,可能会有以下问题:

  1. 这两个函数在小型嵌入式系统中可能不可用
  2. 这两个函数的具体实现可能会相对较大,会占用较多的代码空间
  3. 这两个函数通常不具备线程安全特性
  4. 这两个函数具有不确定性,每次调用的时间开销都可能不同
  5. 这两个函数会产生内存碎片
  6. 这两个函数会使得链接器配置变得复杂

因此对于FreeRTOS来说,通常提供pvPortMalloc()而不是malloc(),vPortFree()而不是free()

分配方案

FreeRTOS有三种内存分配方案

  • Heap_1.c
    构建一个静态数组,只分配,没有实现free
  • Heap_2.c
    静态数组,可以分配和释放,但是不处理内存碎片的问题
  • Heap_3.c
    调用标准malloc和free,通过暂时挂起调度器使得函数调用具备线程安全特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值