プラットフォーム検証用のアクセラレーション アプリケーションの作成からステップバックするには、ベアメタル ホスト アプリケーションのエミュレーションを実行して、プラットフォーム内のハードウェアをテストします。ベアメタル アプリケーションを介すると、ハードウェアの要素にアクセスするのに必要なドライバーに対してエンベデッド プラットフォームをすばやくテストできます。これにより、プラットフォーム開発者がプラットフォームのペリフェラル機能とカスタム 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 が生成されます。 - ベアメタル プラットフォームを生成
-
- 固定 XSA を使用して、エンベデッド プロセッサ プラットフォームのベアメタル固定バージョンを作成または生成し、プラットフォームの検証に使用できます。Vitis IDE を開き、 をクリックします。New Platform Project ウィザードが開きます。
- Platform project name を指定して Next をクリックします。次の図に示す Platform ページが開きます。
- このダイアログボックスでは、XSA
File の名前を指定し、プラットフォームの Operating system、Processor ドメイン、Generate boot
components を選択して、プラットフォームを定義できます。
Operating system には standalone を選択し、Processor と Architecture を指定して、ドメインを定義します。上記のように Generate boot components をオンにし、Finish をクリックし、ベアメタル エンベデッド プラットフォームを生成します。
プラットフォームが完成したら、それが使用可能なプラットフォームのリポジトリに追加されます。これは、次に説明するベアメタル アプリケーション プロジェクトの作成に使用します。
- アプリケーション プロジェクトを使用してベアメタル プラットフォームを検証
- ベアメタル プラットフォームを構築すると、Arm プロセッサで実行されるシンプルなアプリケーションを使用してプラットフォームを検証できます。この方法では、コンパイルされた ELF ファイルからプラットフォームのさまざまな機能をすばやく実行できます。