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

ID 743810
日付 10/31/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

4.8.3. 初期化されたメモリー・コンフィグレーションから実行

リセットアドレスは、メモリー内のアプリケーションの先頭を指します (ブートローダなし)。プロセッサーがリセットから復帰する前に、リセットメモリーの内容を初期化する必要があります。初期化は、不揮発性リセットメモリー (フラッシュ、ROM、初期化された FPGA RAM など) を使用して実装するか、リセットメモリーに書き込む外部マスター (別のプロセッサーなど) によって実装できます。 HAL C ランタイムのスタートアップ・コード (crt0)は命令キャッシュを初期化し、 alt_load()を選択したセクションを VMA にコピーし、_startにジャンプします。関連する各セクション (.rwdata.rodata.exceptions)には、ブール設定はこの動作を制御します。デフォルトの Tcl スクリプトは、表ブートローダーに依存する設定で説明されているように、これらをデフォルト値に設定します。

複数のリセット後に .rwdata を正しくする必要がある場合、alt_load().rwdata セクションを (別の RAM または.text RAM と同じ RAM 内の予約領域のいずれかに) コピーする必要があります。

このブート・コンフィグレーションには、次の特徴があります。
  • alt_load()が呼ばされる
  • 実行可能ファイルにコードがリセットされる

デフォルトの Tcl スクリプトは、リセット時にこの設定を選択し、 .text メモリーは同じです。

このブート・コンフィグレーションでは、プロセッサー・コアがリセットされると、デフォルトで .rwdata セクションは再初期化されません。通常、再初期化はブートローダーによって行われます。ただし、起動前に事前に初期化されると想定されるメモリーが不足しているため、このコンフィグレーションにはブートローダーがありません。ソフトウェアにプロセッサーのリセット時に再初期化する必要がある.rwdataセクションがある場合は、BSPのhal.linker.enable_alt_load_copy_rwdata設定をオンにします。