Nios® Vエンベデッド・プロセッサー・デザイン・ハンドブック

ID 726952
日付 10/31/2022
Public
ドキュメント目次

4.5.1.1.2. ソフトウェア・デザインフロー

この項では、 Nios® Vプロセッサー・ソフトウェア・プロジェクトを生成および構築するためのデザインフローを提供します。ビルドフローを合理化するために、デザイン・プロジェクトで同様のディレクトリー・ツリーを作成することをお勧めします。ソフトウェア・デザインフローは、このディレクトリー・ツリーに基づいています。

次の手順を使用して、ソフトウェア・プロジェクトのディレクトリー・ツリーを作成します。

  1. デザイン・プロジェクト・フォルダーに、software というフォルダーを作成します。
  2. software フォルダーに、app および bsp という2つのフォルダーを作成します。
    図 23. ソフトウェア・プロジェクトのディレクトリー・ツリー

BSPプロジェクト・アプリケーションの作成

選択した Nios® Vプロセッサーのブートオプションに従って、BSPエディターの設定を編集する必要があります。

BSP Editorを起動するには、次の手順を実行します。

  1. Platform Designerウィンドウで、File > New BSPを選択します。Create New BSPウィンドウが表示されます。
  2. BSP setting fileでは、software/bsp フォルダーに移動し、BSPに settings.bsp という名前を付けます。

BSPパス: <project directory>/software/bsp/settings.bsp

  1. System file (qsys or sopcinfo) では、Nios V/m processor Platform Designerシステム (*.qsys) を選択します。
  2. Quartus projectでは、Quartus Project Fileを選択します。
  3. Revisionでは、正しいリビジョンを選択します。
  4. CPU nameでは、Nios V/mプロセッサーを選択します。
  5. Operating systemでは、Altera HALを選択します。
  6. Createをクリックして、BSPファイルを作成します。
図 24. Create New BSPウィンドウ

BSP EditorのコンフィグレーションおよびBSPプロジェクトの生成

  1. BSP Editorで、BSP Linker Scriptをクリックします。
  2. Linker Section Nameで、次の設定を実行します。
    1. Linker Region Nameで、.text をQSPIフラッシュに設定します。
    2. デザインの好みに応じて、.exceptions をOCRAM/ External RAMまたはQSPI Flashに設定します。
    3. 残りの項目をOCRAMまたは外部RAMに設定します。
    図 25. ExceptionsがOCRAM/外部RAMに設定されている場合のリンカー領域の設定
    図 26. ExceptionsがQSPIフラッシュに設定されている場合のリンカー領域の設定
  3. Main > Settings > Advanced > hal.linkerに移動します。
  4. 例外がOCRAMまたはExternal RAMに設定されている場合は、次をイネーブルします。
    • allow_code_at_reset
    • enable_alt_load
    • enable_alt_load_copy_rodata
    • enable_alt_load_copy_rwdata
    • enable_alt_load_copy_exceptions
    図 27. 例外エージェントOCRAMまたは外部RAMのhal.linker設定
  5. 例外がQSPIフラッシュに設定されている場合は、次をイネーブルします。
    • allow_code_at_reset
    • enable_alt_load
    • enable_alt_load_copy_rodata
    • enable_alt_load_copy_rwdata
    図 28. QSPIフラッシュのhal.linker設定
  6. Generate BSPをクリックします。BSPの生成が成功したことを確認します。
  7. BSP Editorを閉じます。

アプリケーション・プロジェクト・ファイルの生成

  1. software/app フォルダーに移動し、 Nios® Vアプリケーション・ソースコードを作成します。
  2. Nios Vコマンドシェルを起動します。
  3. 以下のコマンドを実行して、アプリケーション CMakeLists.txt を生成します。
niosv-app --app-dir=software/app --bsp-dir=software/bsp \
  --srcs=software/app/<Nios V application source code>

アプリケーション・プロジェクトの構築

インテルFPGA向けの RiscFree* IDE、Eclipse Embedded CDT、またはコマンドライン・インターフェイス (CLI) を使用して、アプリケーション・プロジェクトのビルドを選択できます。

CLIを使用する場合は、次のコマンドを使用してアプリケーションをビルドできます。

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -B \
  software/app/debug -S software/app
make -C software/app/debug

アプリケーション (.elf) ファイルは、software/app/debug フォルダーに作成されます。

HEXファイルの生成

フラッシュデバイスのプログラミングに適した .jic ファイルを作成できるように、アプリケーションの .elf ファイルから .hex ファイルを生成する必要があります。

  1. Nios Vコマンドシェルを起動します。
  2. コンフィグレーションQSPIフラッシュからの Nios® Vプロセッサー・アプリケーションexecute-in-place (XIP) の場合、次のコマンドラインを使用して、アプリケーションのELFをHEXに変換します。コマンドは、アプリケーション (.hex) ファイルを作成します。
elf2flash --input software/app/debug/<Nios V application>.elf \
  --output flash.srec --reset <reset offset + base address of GSFI AVL MEM> \
  --base <base address of GSFI AVL MEM> \
  --end <end address of GSFI AVL MEM>
riscv32-unknown-elf-objcopy --input-target srec --output-target ihex \
  flash.srec <Nios V application>.hex