インテルのみ表示可能 — GUID: vsb1642670630722
Ixiasoft
インテルのみ表示可能 — GUID: vsb1642670630722
Ixiasoft
7.13.5. ブートモード
プロセッサーのブートメモリーは、リセットベクターを含むメモリーです。このデバイスは、外部フラッシュの場合もあれば、オンチップ RAM の場合もあります。ブートメモリーの性質に関係なく、HAL ベースのシステムは、すべてのプログラムおよびデータセクションが最初に格納されるようにビルドされます。
HAL は、起動時にこれらのセクションを実行時の位置にコピーする小さなブートローダー プログラムを提供します。BSP 設定を操作することにより、プログラムおよびデータメモリーの実行時の位置を指定できます。
.text セクションの実行時の位置ががブートメモリーの外側にある場合、 Nios® V プロセッサー・ツールは、ブートローダーをリセットアドレスに配置します。このブートローダーは、_start を呼び出す前にすべてのプログラムとデータセクションをロードする役割を果たします。GSFI フラッシュデバイスから起動する場合、このローダー機能はハードウェアによって提供されます。
ただし、.text セクションの実行時の位置がブートメモリー内にある場合、システムは別個のローダーを必要としません。代わりに、HAL 実行可能プログラムの _reset エントリーポイントが直接呼び出されます。関数 _reset は命令キャッシュを初期化し、_start を呼び出します。この初期化シーケンスにより、フラッシュメモリーから直接起動して実行するアプリケーションを開発できます。
このモードで実行する場合、HAL 実行可能プログラムは、RAM へのロードが必要なすべてのセクションをロードする必要があります。.rwdata、.rodata、および .exceptions セクションは必要に応じて、alt_main() を呼び出す前にロードされます。
このロードは関数 alt_load() によって実行されます。これらの関数とデータを手動でメモリーにロードし、追加のセクションをロードするには、alt_load_section() 関数を使用します。
Alt_load_section() の詳細については、HAL API リファレンスの章を参照してください。