ベアメタル用のホスト コードのコンパイルおよびリンク - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

ベアメタル フローの PS アプリケーションをビルドするには、前の手順で生成されたプラットフォームを使用します。PS アプリケーション (main.cpp)、ベアメタル AI エンジン 制御ファイル (aie_control.cpp) が必要です。この制御ファイルは、aiecompiler コマンドで作成され、./Work/ps/c_rts フォルダーにあります。

次のコマンドを使用して main.cpp ファイルをコンパイルします。

aarch64-none-elf-gcc -I.. -I. -I../src \
-I./vck190_baremetal/export/vck190_baremetal/sw/vck190_baremetal/standalone_domain/bspinclude/include \
-g -c -std=c++17 -o main.o main.cpp
注記: ./vck190_baremetal/export/vck190_baremetal/sw/vck190_baremetal/standalone_domain/bspinclude/include にある生成されたカスタム ベース プラットフォームの BSP インクルード ファイルを含める必要があります。

ここでの vck190_baremetal は、ユーザー定義のプラットフォーム名です。

次のコマンドを使用して aie_control.cpp ファイルをコンパイルします。

aarch64-none-elf-gcc -I.. -I. -I../src \
-I./vck190_baremetal/export/vck190_baremetal/sw/vck190_baremetal/standalone_domain/bspinclude/include \
-g -c -std=c++17 -o aie_control.o ../Work/ps/c_rts/aie_control.cpp

2 つのコンパイル済みオブジェクト ファイルを使用して PS アプリケーションをリンクします。

aarch64-none-elf-gcc main.o aie_control.o -g -mcpu=cortex-a72 -Wl,-T -Wl,./lscript.ld \

-L./vck190_baremetal/export/vck190_baremetal/sw/vck190_baremetal/standalone_domain/bsplib/lib  \
-ladf_api -Wl,--start-group,-lxil,-lgcc,-lc,-lstdc++,--end-group -o main.elf
注記: リンク時には、./vck190_baremetal/export/vck190_baremetal/standalone_domain/bsplib/lib にある BSP libxil.a も必要です。ここでは、プラットフォーム管理コントローラー (PMC) のブート時に AI エンジンが有効であると想定しています。
注記: リンカー スクリプト lscript.ld は、 『Vitis 統合ソフトウェア プラットフォーム資料: アプリケーション アクセラレーション開発』 (UG1393)ベアメタル システムの作成の説明にあるとおり、Vitis IDE から入手できます。詳細は、https://docs.xilinx.com/r/en-US/Vitis-Tutorials-AI-Engine-Development/A-to-Z-Bare-metal-Flow を参照してください。
注記: グラフまたはカーネル コードが複数のアーキテクチャ用に設計されており、__AIE_ARCH__ マクロを使用してアーキテクチャ固有のコードの一部を保護する必要がある場合、ホスト コンパイルでマクロを定義する必要があります。たとえば、AI エンジン デバイスのホスト コンパイルでは -D__AIE_ARCH=10 を追加し、AI エンジン ML デバイスの場合は -D__AIE_ARCH=20 を追加します。
重要: AI エンジン グラフ アプリケーションおよび PL カーネルを含むホスト コードをハードウェア プラットフォームに統合する手順では、v++ --package コマンドを実行する必要があります。Vitis ツール フローを使用した Versal システムのビルドと実行の詳細は、 『Vitis 統合ソフトウェア プラットフォーム資料: アプリケーション アクセラレーション開発』 (UG1393)システムのビルドと実行を参照してください。