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

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

4.5.2.1.3. ソフトウェア・デザインフロー (SDM経由のブートローダー・プロジェクト)

このセクションでは、SDM経由のブートローダー・プロジェクトを生成およびビルドするデザインフローを提供します。

SDM経由のブートローダーBSPプロジェクトの作成

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

  1. プラットフォーム・デザイナー・ウィンドウで、File > New BSP を選択します。Create New BSP ウィンドウが表示されます。
  2. BSP setting file では、software/mailbox_bootloader/bsp フォルダーに移動し、BSPに settings.bsp という名前を付けます。

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

  3. System file (qsys or sopcinfo) には、 Nios® Vプロセッサー・プラットフォーム・デザイナー・システム (.qsys) ファイルを選択します。
  4. Quartus project には、Quartusプロジェクト・ファイルを選択します。
  5. Revision には、正しいリビジョンを選択します。
  6. CPU name には、 Nios® Vプロセッサーを選択します。
  7. Operating system には、Altera HAL を選択します。
  8. Create をクリックし、BSPファイルを作成します。
図 53. Create New BSPウィンドウ

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

  1. BSP Editor > Main > Settings に移動します。
  2. 次の表に従い、設定をコンフィグレーションします。
    表 29.  BSP Editorの設定
    設定 アクション

    hal.max_file_descriptors 5

    4 を入力します。

    hal.log_port 5

    None を選択します。

    hal.enable_exit 5

    hal.enable_clean_exit 5

    hal.c_plus_plus 5

    Unchecked にし、機能を無効にします。

    hal.sys_clk_timer 5

    hal.timerstamp_timer 5

    hal.stdin 5

    hal.stdout 5

    hal.stderr 5

    None を選択します。
    hal.linker

    次の設定を有効にします。

    • allow_code_at_reset

    • enable_alt_load

    • enable_alt_load_copy_rodata

    • enable_alt_load_copy_rwdata

    • enable_alt_load_copy_exceptions

    hal.make.cflags_user_flags 5

    -ffunction-sections -fdata-sections と入力します。

    hal.make.link_flags 5

    -Wl,--gc-sections と入力します。

    hal.make.cflags_optimization 5

    -Os と入力します。
    図 54. hal の設定
    図 55. hal.linker の設定
    図 56. hal.toolchain の設定
    図 57. hal.make の設定
  3. BSP Software Package に移動し、altera_safeclib を有効にします。
    図 58. BSP Software Package
  4. BSP Editorの BSP Linker Script タブをクリックします。
  5. Linker Section Name の .text 項目には、Linker Region Name にブートローダーROMを設定します。Linker Section Name リストの残りの項目には、ブートローダーRAMを設定します。
    図 59. リンカー領域の設定
  6. BSP Driver タブに移動し、すべてのドライバーを無効にします ( Nios® VプロセッサーおよびMailbox Client Intel® FPGA IPを除く)。
    図 60. BSP Driverタブ
  7. Generate BSP をクリックします。BSPの生成が成功していることを確認します。
  8. BSP Editorを閉じます。

SDM経由のブートローダー・アプリケーション・プロジェクトの作成

  1. デザイン例のファイルをダウンロードします (SDM経由のブートローダー・デザイン例のセクションを参照してください)。デザイン例をビルドする必要はありません。
  2. SDM経由のブートローダー・デザイン例プロジェクトの sw/mailbox_bootloader/app フォルダーに移動します。
  3. SDM経由のブートローダー (mailbox_bootloader.c) をプロジェクトの software/mailbox_bootloader/app フォルダーにコピーします。
  4. PAYLOAD_OFFSETmailbox_bootloader.c. で再定義します。
    注: SOFイメージサイズは、PAYLOAD_OFFSET に影響します。PAYLOAD_OFFSET は、QSPIフラッシュの Nios® VアプリケーションHEXファイルの開始アドレスであり、SOFイメージの後の位置を指している必要があります。最小 PAYLOAD_OFFSET は、デバイス・データシートのコンフィグレーション・ビットストリーム・サイズを使用して特定することができます。

    例えば、Stratix 10 SX 2800の推定圧縮コンフィグレーション・ビットストリーム・サイズは577Mビット (72.125Mバイト) です。実際のサイズは、このビットストリーム・サイズ以下になることがあります。SOFイメージがアドレス0x0で始まる場合、SOFイメージはアドレス0x44C8FFF (0x44C8A48) まで拡張します。この場合、選択可能な最小 PAYLOAD_OFFSET は0x4500000です。

  5. Nios Vコマンドシェルを起動します。
  6. 次のコマンドを実行し、SDM経由のブートローダー・アプリケーションの CMakeLists.txt を生成します。
    niosv-app --app-dir=software/mailbox_bootloader/app\
            --bsp-dir=software/mailbox_bootloader/bsp\
            --srcs=software/mailbox_bootloader/app/mailbox_bootloader.c

SDM経由のブートローダー・プロジェクトのビルド

SDM経由のブートローダー・プロジェクトのビルドには、インテルFPGA向け RiscFree* IDE、またはコマンドライン・インターフェイス (CLI) を使用することができます。

CLIを使用する場合は、次のコマンドを使用してSDM経由のブートローダーをビルドすることができます。

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -B \
        software/mailbox_bootloader/app/release -S \ 
        software/mailbox_bootloader/app
make -C software/mailbox_bootloader/app/release

SDM経由のブートローダーファイル (.elf) は、

software/mailbox_bootloader/app/release フォルダーに作成されます。

HEXファイルの生成とメモリーの初期化

ELFファイルからHEXファイルを生成し、HEXファイルをメモリーの初期化に使用できるようにする必要があります。

  1. Nios Vコマンドシェルを起動します。
  2. SDM経由のブートローダーの場合は、次のコマンドラインを使用してELFをHEXに変換します。次のコマンドにより、SDM経由のブートローダー (bootcopier_rom.hex) ファイルを作成します。
elf2hex software/mailbox_bootloader/app/release/app.elf \
  -o bootcopier_rom.hex \
  -b <base address of Bootloader ROM> \
  -w <data width of Bootloader ROM in bits> \
  -e <end address of Bootloader ROM> \
  -r <data width of Bootloader ROM in bytes>

ハードウェア・デザインを再コンパイルし、bootcopier_rom.hex でブートローダーROMをメモリー初期化します。

5 アルテラでは、これらの設定を使用してSDM経由のブートローダー・コードのフットプリントを低減することを推奨しています。