

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理应用程序内存
<a name="application-memory-management"></a>

当应用程序需要内存时，可以从 FreeRTOS 堆进行分配。FreeRTOS 提供了多种堆管理方案，复杂性和功能各不相同。您也可以提供自己的堆实施。

FreeRTOS 内核包含以下五个堆实施：

**`heap_1`**  
是最简单的实施。不允许释放内存。

**`heap_2`**  
允许释放内存，但不合并相邻的空闲数据块。

**`heap_3`**  
对标准的 `malloc()` 和 `free()` 进行包装以确保线程安全。

**`heap_4`**  
合并相邻的空闲数据块以避免碎片。包括绝对地址放置选项。

**`heap_5`**  
类似于 heap\$14。可以跨越多个非相邻内存区域中的堆。