FreeRTOS的heap文件

在动态创建任务的时候, 只需要提供一个任务句柄, 内存的分配, TCB的分配, 都是系统来进行的, 也是这个文件做的工作. heap文件一共有5个, 都是内存管理文件, 工程只需要一个就行, 这五个的内存分配方法都不一样.

FreeRTOS的heap文件_第1张图片

heap1: 只实现了malloc功能, 没有实现free功能.(不用)

heap2: 实现了malloc和free功能, 使用了最佳匹配算法, 但分配几次, 再释放之后, 不能合并相邻空闲内存, 全部内存都变成了内存碎片, 全部不能用了.(不用)

heap3: C库的函数过于复杂庞大, 不适合内存紧张的嵌入式, 而且速度也慢.(不用)

heap4: 实现了malloc和free功能, 使用了首次适用算法, 增加了合并相邻空闲内存的功能, 有助于减少内存碎片, 内存连续选择heap4.

heap5: 和heap4分配内存和释放算法是一样的, 增加了可以管理多块, 分隔开的内存, 如果嵌入式系统中, 内存不连续, 多块内存可以使用heap5.

你可能感兴趣的:(算法)