

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 核心記憶體配置
<a name="kernel-memory-allocation"></a>

每次建立任務、佇列或其他 RTOS 物件時，RTOS 核心都需要 RAM。RAM 可根據以下方式進行配置：
+ 於編譯時間靜態配置。
+ 由 RTOS API 物件建立函數從 RTOS 堆積動態配置。

動態建立 RTOS 物件時，基於多個原因，不一定適合使用標準 C 程式庫 `malloc()` 和 `free()` 函數：
+ 它們可能無法用於內嵌系統。
+ 它們會佔用寶貴的程式碼空間。
+ 它們通常並非安全執行緒。
+ 它們不具確定性。

基於這些原因，FreeRTOS 會將記憶體配置 API 保存在其可攜式 layer 中。可攜式 layer 位於實作核心 RTOS 功能的來源檔案外部，因此您可以提供應用程式限定實作給您正在開發的即時系統。當 RTOS 核心需要 RAM 時，它會呼叫 `pvPortMalloc()` 而非 `malloc()`()。釋放 RAM 時，RTOS 核心會呼叫 `vPortFree()` 而非 `free()`。