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

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

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

Arm Cortex-A72 プロセッサ用の次の一般的なクロス コンパイル フローに従って、エンベデッド アプリケーションをコンパイルします。

Versal アーキテクチャ ボード上で実行するホスト アプリケーションのコンパイルとリンクを実行するには、Vitis 2023.2 ツールを使用する必要があります。

前提として、次のセットアップを完了しておく必要があります。

  1. Vitis 2023.2 ツールをインストールします。Vitis リリースには、VCK190 ベース プラットフォームを含む、すべてのエンベデッド ベース プラットフォームが含まれています。
  2. https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-platforms/2023-2.html から、Vitis エンベデッド プラットフォーム用の共通イメージをダウンロードします。

    各共通イメージ パッケージには、Vitis を使用するエンベデッド デザイン開発用の Versal アーキテクチャ ボードで利用可能なビルド済み Linux カーネルとルート ファイル システムが含まれます。

  3. Versal 共通イメージ パッケージを解凍します。
  4. Bash シェルで、次のスクリプトを実行します。

    /Common Images Dir/xilinx-versal-common-v2023.2/environment-setup-cortexa72-cortexa53-xilinx-linux

    このスクリプトによって、SDKTARGETSYSROOT および CXX 変数が設定されます。

    スクリプトがない場合は、/Common Images Dir/xilinx-versal-common-v2023.2/sdk.sh を実行する必要があります。

これで、ホスト アプリケーションのコンパイルおよびリンクの準備ができました。

ホスト アプリケーションのコンパイル

PS アプリケーションのコンパイルでは、CXX 変数が使用されます。次に、PS アプリケーションのコンパイルに使用されるコマンド例を示します。
$CXX -std=c++17 -I${SDKTARGETSYSROOT}/usr/include/xrt/ -g -Wall -c -fmessage-length=0 -o host.o host.cpp 

上記のほとんどのコマンド オプションは標準的なもので、g++ コマンドの説明にあります。次に、重要なオプションをリストします。

  • -std=c++17
  • -I${SDKTARGETSYSROOT}/usr/include/xrt/
  • -o host.o host.cpp

ホスト アプリケーションのリンク

PS アプリケーションのリンクでは、CXX 変数が使用されます。次に、PS アプリケーションのリンクに使用されるコマンド例を示します。
$CXX -lxrt_coreutil -o host.exe host.o

xrt_coreutil: XRT API のリンクに必要なライブラリ。

ホスト コードに ADF API が含まれている場合のコンパイルとリンクについては、 『Vitis 統合ソフトウェア プラットフォーム資料: アプリケーション アクセラレーション開発』 (UG1393)Cortex-A72 プロセッサ用のエンベデッド アプリケーションのコンパイルを参照してください。

重要: AI エンジン グラフ アプリケーションおよび PL カーネルを含むホスト コードをハードウェア プラットフォームに統合する手順では、v++ --package コマンドを実行する必要があります。Vitis ツール フローを使用した Versal システムのビルドと実行の詳細は、 『Vitis 統合ソフトウェア プラットフォーム資料: アプリケーション アクセラレーション開発』 (UG1393)システムのビルドと実行を参照してください。