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

ID 743810
日付 10/31/2022
Public

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

ドキュメント目次

6.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 リファレンスの章を参照してください。