インテルのみ表示可能 — GUID: mze1686097662228
Ixiasoft
インテルのみ表示可能 — GUID: mze1686097662228
Ixiasoft
7.11.9. 使用していない alt_load() の削除
Nios® V プロセッサーを execute-in-place を使用して起動する際、crt0 コードブロックは alt_load() マクロを呼び出します。alt_load() マクロは、リセット時にメモリーからシステム RAM への (.text を除く) セクションのコピーを処理します。コード・フットプリントの削減には、2 つの方法があります。
- 部分的削除
オンチップメモリー (OCRAM) から起動している場合、アプリケーション・コードの .rwdata セクションのコピーを保持するためには、enable_alt_load_copy_rwdata を有効にする必要があります。こうすることで、ランタイム中の変更から .rwdata が復元されることが保証され、アプリケーションがシステムリセット後に同じ .rwdata セクションで初期化されます。
alt_load() 機能を部分的に有効にする場合
set_setting hal.linker.enable_alt_load {true}
set_setting hal.linker.enable_alt_load_copy_exceptions {false}
set_setting hal.linker.enable_alt_load_copy_rodata {false}
set_setting hal.linker.enable_alt_load_copy_rwdata {true}
set_setting hal.linker.enable_exception_stack {false}
- 完全な削除
初期化した OCRAM で新しいハードウェア SOF ファイルを再プログラミングする場合、または各システム起動後にソフトウェア ELF ファイルを再度ダウンロードする場合、全ての alt_load() 関数を無効にすることができます。システムの起動前には常に新しい .rwdata セクションが存在するため、enable_alt_load_copy_rwdata を使用してそれを保持する義務はありません。
alt_load() 関数を完全に無効にする場合
set_setting hal.linker.enable_alt_load {false}
set_setting hal.linker.enable_alt_load_copy_exceptions {false}
set_setting hal.linker.enable_alt_load_copy_rodata {false}
set_setting hal.linker.enable_alt_load_copy_rwdata {false}
set_setting hal.linker.enable_exception_stack {false}