FreeRtos里面有5个heap.c,本篇先只讲heap1.c和heap2.c。
一、heap_1.c 分析
heap_1.c是最简单的,其中只实现了内存申请pvPortMalloc,没有释放。
二、heap_2.c分析
heap_2.c里面内存是通过一个链表管理起来的
prvHeapInit:
初始化完的内存数据结构
pvPortMalloc:
prvInsertBlockIntoFreeList:
vPortFree:
这个接口其实就相对简单了,将还回来的内存地址,加上链表头,插入到可用的链表序列中