翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カーネルメモリの割り当て
RTOS カーネルは、タスク、キュー、またはその他のRTOSオブジェクトが作成されるRAMたびに必要です。は、次のように割り当てRAMることができます。
-
コンパイル時に静的に
-
RTOS API オブジェクト作成関数によってRTOSヒープから動的に。
RTOS オブジェクトが動的に作成される場合、標準の C ライブラリmalloc()
とfree()
関数を使用することは、いくつかの理由で必ずしも適切とは限りません。
-
組み込みシステムでは使用できない可能性があります。
-
貴重なコードスペースを占有します。
-
通常はスレッドセーフではありません。
-
決定的ではありません。
このような理由から、FreeRTOS はメモリ割り当てをポータブルレイヤーAPIに保持します。ポータブルレイヤーは、コアRTOS機能を実装するソースファイルの外部にあるため、開発中のリアルタイムシステムに適したアプリケーション固有の実装を提供できます。RTOS カーネルが を必要とする場合RAM、 malloc()
() pvPortMalloc()
の代わりに を呼び出します。RAM が解放されると、RTOSカーネルは vPortFree()
の代わりに を呼び出しますfree()
。