Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

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 チェックをオフのままにしておく場合は、使用可能なヒープおよびスタックメモリーの制限内で動作するようにプログラムをコーディングする必要があります。