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

ID 726952
日付 7/08/2024
Public
ドキュメント目次

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

このセクションでは、 Nios® Vプロセッサー・ソフトウェア・プロジェクトを生成およびビルドするデザインフローを提供します。効率的なビルドフローを実現するには、デザイン・プロジェクトで同様のディレクトリー・ツリーを作成することが推奨されます。ソフトウェア・デザインフローは、このディレクトリー・ツリーに基づいています。

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

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

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

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

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

  1. プラットフォーム・デザイナー・ウィンドウで、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 プラットフォーム・デザイナー・システム (*.qsys) を選択します。
    注: Quartus® Primeスタンダード・エディションでは、SOPCINFOファイルを使用してBSPファイルを生成します。詳細は、AN 980: Nios V Processor Intel Quartus Prime Software Support を参照してください。
  2. Quartus project には、 Quartus® Primeプロジェクト・ファイルを選択します。
  3. Revision には、正しいリビジョンを選択します。
  4. CPU name には、 Nios® Vプロセッサーを選択します。
  5. Operating system には、Altera HAL を選択します。
  6. Create をクリックし、BSPファイルを作成します。
図 23. Create New BSPウィンドウ

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

  1. BSP Editor で、BSP Linker Script をクリックします。
  2. Linker Section Name で、次の設定を行います。
    1. .text には、Linker Region Name をQSPIフラッシュに設定します。
    2. .exceptions は、デザインの要件に応じてOCRAM/外部RAMまたはQSPIフラッシュに設定します。
    3. 残りの項目をOCRAMまたは外部RAMに設定します。
    図 24. リンカー領域の設定 (ExceptionsがOCRAM/外部RAMに設定されている場合)
    図 25. リンカー領域の設定 (ExceptionsがQSPIフラッシュに設定されている場合)
  3. Main > Settings > Advanced > hal.linker に進みます。
  4. 例外がOCRAMまたは外部RAMに設定されている場合は、次の項目を有効にします。
    • allow_code_at_reset
    • enable_alt_load
    • enable_alt_load_copy_rodata
    • enable_alt_load_copy_rwdata
    • enable_alt_load_copy_exceptions
    図 26. hal.linker 設定 (例外エージェントがOCRAMまたは外部RAMの場合)
  5. 例外がQSPIフラッシュに設定されている場合は、次の項目を有効にします。
    • allow_code_at_reset
    • enable_alt_load
    • enable_alt_load_copy_rodata
    • enable_alt_load_copy_rwdata
    図 27. hal.linker 設定 (QSPIフラッシュの場合)
  6. BSP Drivers タブに移動します。
  7. 汎用シリアルフラッシュ・インターフェイス・ドライバー (intel_generic_serial_flash_interface_top) を無効にします。
    図 28. BSPドライバー
  8. BSP Editor タブに戻り、Generate BSP をクリックします。BSPの生成が成功していることを確認します。
  9. 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、またはコマンドライン・インターフェイス (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ファイルの生成

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

  1. Nios Vコマンドシェルを起動します。
  2. コンフィグレーションQSPIフラッシュから Nios® Vプロセッサー・アプリケーションをインプレース実行 (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