カーネルメモリの割り当て - 無料RTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カーネルメモリの割り当て

RTOS カーネルは、タスク、キュー、またはその他のRTOSオブジェクトが作成されるRAMたびに必要です。は、次のように割り当てRAMることができます。

  • コンパイル時に静的に

  • RTOS API オブジェクト作成関数によってRTOSヒープから動的に。

RTOS オブジェクトが動的に作成される場合、標準の C ライブラリmalloc()free()関数を使用することは、いくつかの理由で必ずしも適切とは限りません。

  • 組み込みシステムでは使用できない可能性があります。

  • 貴重なコードスペースを占有します。

  • 通常はスレッドセーフではありません。

  • 決定的ではありません。

このような理由から、FreeRTOS はメモリ割り当てをポータブルレイヤーAPIに保持します。ポータブルレイヤーは、コアRTOS機能を実装するソースファイルの外部にあるため、開発中のリアルタイムシステムに適したアプリケーション固有の実装を提供できます。RTOS カーネルが を必要とする場合RAM、 malloc()() pvPortMalloc()の代わりに を呼び出します。RAM が解放されると、RTOSカーネルは vPortFree()の代わりに を呼び出しますfree()