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