ベアメタル ソフトウェア エミュレーションの実行 - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

プラットフォーム検証用のアクセラレーション アプリケーションの作成からステップバックするには、ベアメタル ホスト アプリケーションのエミュレーションを実行して、プラットフォーム内のハードウェアをテストします。ベアメタル アプリケーションを介すると、ハードウェアの要素にアクセスするのに必要なドライバーに対してエンベデッド プラットフォームをすばやくテストできます。これにより、プラットフォーム開発者がプラットフォームのペリフェラル機能とカスタム IP を簡単なアプリケーションで検証できます。この検証では、拡張可能なプラットフォームをベアメタル ソフトウェア開発用の固定バージョンに変換する必要があります。この検証には Linux ソフトウェア コンポーネントは必要ありません。

エクステンシブル プラットフォームの固定形式を作成するには、次の手順を実行します。

エクステンシブル ハードウェア プラットフォームから固定 XSA をエクスポート
プラットフォーム タイプで説明するように、プラットフォームにはエクステンシブル プラットフォームと固定プラットフォームの 2 つの一般的なタイプがあります。固定プラットフォームはエンベデッド ソフトウェア開発をサポートしており、PL カーネルやデバイス バイナリで定義されたターゲット プラットフォームを変更することはできません。ただし、AI エンジン フローを使用すると、固定プラットフォームでグラフ アプリケーションを変更および再コンパイルできます。

デバイス バイナリのビルド で説明するように、ハードウェア プラットフォームの固定バージョン (.xsa) は、アプリケーション プロジェクトを構築する際の Vitis コンパイラ (v++) のリンク処理中に生成できます。

Vitis IDE の場合、Hardware Link Project Settings ビューの Export hardware (XSA) チェック ボックスをオンにすると、固定 XSA を生成できます。コマンドライン フローの場合、v++ --link コマンド中に使用されるコンフィギュレーション ファイルに次のオプションを追加して、この機能をイネーブルにする必要があります。
[advanced]
param=compiler.addOutputTypes="hw_export"

Vitis コンパイラは、アクセラレーション カーネルおよび AI エンジン グラフをハードウェアに固定して、ターゲット プラットフォームの要素を含む固定ハードウェア仕様をエクスポートします。固定 XSA は、エンベデッド ソフトウェア アプリケーションの開発に使用可能なシステム デザイン用の BSP を提供します。

重要: 固定 XSA は、Vitis コンパイラの指定されたビルド ターゲットと一致します。そのため、hw_emu ビルド ターゲットからハードウェア エミュレーション対応の固定 XSA が生成され、hw ビルド ターゲットからハードウェア対応の固定 XSA が生成されます。
ベアメタル プラットフォームを生成
  1. 固定 XSA を使用して、エンベデッド プロセッサ プラットフォームのベアメタル固定バージョンを作成または生成し、プラットフォームの検証に使用できます。Vitis IDE を開き、File > New > Platform Project をクリックします。New Platform Project ウィザードが開きます。
  2. Platform project name を指定して Next をクリックします。次の図に示す Platform ページが開きます。
  3. このダイアログボックスでは、XSA File の名前を指定し、プラットフォームの Operating systemProcessor ドメイン、Generate boot components を選択して、プラットフォームを定義できます。

    Operating system には standalone を選択し、ProcessorArchitecture を指定して、ドメインを定義します。上記のように Generate boot components をオンにし、Finish をクリックし、ベアメタル エンベデッド プラットフォームを生成します。

    プラットフォームが完成したら、それが使用可能なプラットフォームのリポジトリに追加されます。これは、次に説明するベアメタル アプリケーション プロジェクトの作成に使用します。

アプリケーション プロジェクトを使用してベアメタル プラットフォームを検証
ベアメタル プラットフォームを構築すると、Arm プロセッサで実行されるシンプルなアプリケーションを使用してプラットフォームを検証できます。この方法では、コンパイルされた ELF ファイルからプラットフォームのさまざまな機能をすばやく実行できます。
  1. Vitis IDE で File > New > Application Project をクリックします。New Application Project ウィザードが開きます。

    Platform ページで前の手順で作成したベアメタル プラットフォームを選択し、Next をクリックして続行します。

  2. New Application Project ウィザードに Application Project Details ページが表示されます。Project nameSystem project name を指定し、Next をクリックして続行します。
  3. Domain ページに選択したプラットフォームのドメイン情報が表示されます。Next をクリックします。
  4. Templates ページに選択したプラットフォームの Embedded software development templates のリストが表示されます。Hello World テンプレートまたは別の単純なアプリケーションを選択するか、Empty Application を選択して独自のソースファイルを指定し、Finish をクリックしてアプリケーション プロジェクトを作成します。
  5. これで、ベアメタル プラットフォームをサポートするベアメタル アプリケーション プロジェクトができたので、検証を開始する準備が整いました。ベアメタル プラットフォームは、固定 XSA の作成元と同じビルド ターゲットで使用できます。
    • 固定 XSA がハードウェア エミュレーション ビルド (v++ --link -t hw_emu) から生成された場合は、ベアメタル アプリケーション プロジェクトの Emulation-HW ビルドに使用できます。
    • 固定 XSA がハードウェア ビルド (v++ --link -t hw) から生成された場合は、ベアメタル アプリケーション プロジェクトの Hardware ビルドに使用できます。
    System Project Settings ウィンドウでベアメタル プラットフォームの固定 XSA と互換性のあるActive build configuration を指定します。
    ヒント: 次の図に示すように、Packaging options フィールドでベアメタル アプリケーション プロジェクトの .xclbin ファイルを指定する必要がある場合もあります。これはハードウェア ビルドに必要です。.xclbin ファイルは、固定 XSA のソース プロジェクトからベアメタル アプリケーション プロジェクトにコピーできます。
  6. Emulation-HW ビルド コンフィギュレーションの場合は、QEMU 環境でアプリケーションを実行し、固定プラットフォームと関係しているアプリケーションを確認して、システムを検証できます。エミュレーション ビルドを実行するには、[Assistant] ビューまたはメイン ツールバー メニューから Launch HW Emulator コマンドをクリックします。QEMU が TCF エージェントを介して起動されたら、Emulation Console ビューで QEMU の起動と PS アプリケーションの実行の記録を確認できます。
    重要: lscript.ld ファイルでヒープ/スタックサイズを 2MB に設定しないと、Terminate エラーが表示されるので、忘れずに設定してください。
    ヒント: Debug As コマンドをクリックして Vitis IDE で対話型デバッグ環境を起動することもできます。