Nios® Vエンベデッド・プロセッサー・デザイン・ハンドブック

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

4.4.1.1. alt_load()

HALコードの alt_load() 関数は、BSP Editorを使用して有効にすることができます。

インプレース実行タイプのブートフローで使用する場合、alt_load() 関数は次のタスクを実行します。
  • ミニ・ブートコピアーとして動作し、BSPの設定に基づきメモリーセクションをRAMにコピーします。
  • データセクション (.rodata.rwdata.exceptions) をRAMにコピーしますが、コードセクション (.text) はコピーしません。コードセクション (.text) は読み取り専用セクションであり、ブート・フラッシュメモリー領域に残ります。このパーティションによりRAMの使用を最小限に抑えることができますが、コードの実行パフォーマンスが制限される可能性があります。これは、フラッシュメモリーへのアクセスがオンチップRAMへのアクセスに比べて遅いことが原因です。

次の表に、BSP Editorの設定と機能を示します。

表 24.  BSP Editorの設定
BSP Editorの設定 機能
hal.linker.enable_alt_load alt_load() 関数を有効にします
hal.linker.enable_alt_load_copy_rodata alt_load() により、.rodata セクションをRAMにコピーします
hal.linker.enable_alt_load_copy_rwdata alt_load() により、.rwdata セクションをRAMにコピーします
hal.linker.enable_alt_load_copy_exceptions alt_load() により、.exceptions セクションをRAMにコピーします