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

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

7.11.9. 使用していない alt_load() の削除

Nios® V プロセッサーを execute-in-place を使用して起動する際、crt0 コードブロックは alt_load() マクロを呼び出します。alt_load() マクロは、リセット時にメモリーからシステム RAM への (.text を除く) セクションのコピーを処理します。コード・フットプリントの削減には、2 つの方法があります。

  1. 部分的削除

    オンチップメモリー (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}

  2. 完全な削除

    初期化した 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}