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

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

4.5.2.1.3. ソフトウェア・デザインフロー (SDM Bootloaderプロジェクト)

この項では、SDM Bootloaderプロジェクトを生成してビルドするためのデザインフローを提供します。

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

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

  1. Platform Designerウィンドウで、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/mプロセッサー・プラットフォーム・デザイナー・システム (.qsys) ファイルを選択します。
  4. Quartus projectでは、Quartus Project Fileを選択します。
  5. Revisionでは、正しいリビジョンを選択します。
  6. CPU nameでは、Nios V/mプロセッサーを選択します。
  7. Operating systemでは、Altera HALを選択します。
  8. Createをクリックして、BSPファイルを作成します。
図 54. Create New BSPウィンドウ

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

  1. BSP Editor > Main > Settingsに移動します。
  2. 次の表に従って、設定をコンフィグレーションします。
    表 17.  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を入力します。
    :
    図 55. hal設定
    図 56. hal.linker設定
    図 57. hal.toolchain設定
    図 58. hal.make設定
  3. BSP Software Packageに移動し、altera_safeclib をイネーブルします。
    図 59. BSP Software Package
  4. BSP Editorで、BSP Linker Scriptタブをクリックします。
  5. Linker Section Nameの.text項目を、Linker Region NameのBootloader ROMに設定します。Linker Section Nameリストの残りの項目を、Bootloader RAMに設定します。
    図 60. リンカー領域の設定
  6. BSP Driverタブに移動し、すべてのドライバーをディスエーブルします (Nios V ProcessorおよびMailbox Client Intel FPGA IPを除く)。
    図 61. BSP Driverタブ
  7. Generate BSPをクリックします。BSPの生成が成功したことを確認します。
  8. BSP Editorを閉じます。

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

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

    例えば、インテルStratix 10 SX 2800の推定圧縮コンフィグレーション・ビットストリーム・サイズは、577 Mbit (72.125 MByte) です。実際のサイズは、このビットストリーム・サイズと等しい、もしくは小さい場合があります。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ブートローダー・プロジェクトのビルド

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

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ファイルの生成とメモリーの初期化

HEXファイルをメモリーの初期化用に使用できるように、ELFファイルから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> -e <end address of Bootloader ROM> -r 4

ハードウェア・デザインをリコンパイルして、bootcopier_rom.hex のBootloader ROMへのメモリー初期化を行います。

5 インテルは、これらの設定を使用して、SDMブートローダーのコード・フットプリントを削減することをお勧めします。