インテルのみ表示可能 — GUID: noy1642670471070
Ixiasoft
インテルのみ表示可能 — GUID: noy1642670471070
Ixiasoft
7.13.3. ヒープとスタックの配置
デフォルトでは、ヒープとスタックは .rwdata セクションと同じメモリー・パーティションに配置されます。スタックはセクションの終わりから下方向 (下位アドレスに向かって) に成長します。ヒープは、.rwdata セクションで最後に使用されたメモリーから上に向かって増加します。BSP 設定を操作することで、ヒープとスタックの配置を制御できます。
デフォルトでは、HAL はスタックまたはヒープチェックを実行しません。これにより、関数呼び出しとメモリー割り当てが高速になりますが、malloc() (C) および new (C++ の場合) ヒープの枯渇を検出できません。BSP 設定を操作して、ランタイム・スタック・チェックを有効にすることができます。 .stack チェックをオンにすると、malloc() と new () はヒープの枯渇を検出できます。
ヒープサイズ制限を指定するには、プリプロセッサー・シンボル ALT_MAX_HEAP_BYTES を 10 進数の最大ヒープサイズに設定します。たとえば、プリプロセッサー引数 -DALT_MAX_HEAP_BYTES=1048576 は、ヒープサイズ制限を 0x100000 に設定します。このコマンドライン・オプションは、BSP 設定で指定できます。
スタックチェックにはパフォーマンス・コストがかかります。 .stack チェックをオフのままにしておく場合は、使用可能なヒープおよびスタックメモリーの制限内で動作するようにプログラムをコーディングする必要があります。