スタンドアロン デバッグ フローの使用 - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

Vitis IDE では、コマンド ライン フローを使用してビルドしたプロジェクトをデバッグ ツールを開くことができます。

エンベデッド プラットフォームのスタンドアロン デバッグの起動

スタンドアロン デバッグ フローでは、エンベデッド プロセッサ アプリケーション アクセラレーション フロー (embedded_accel) またはエンベデッド プロセッサ ソフトウェア開発フロー (embedded) の両方がサポートされます。エンベデッド プラットフォームの場合、アプリケーションはデバイスの Arm プロセッサで実行され、システムを起動してアプリケーションおよびカーネルを読み込むのに必要なファイルはリモート システムに含まれますが、デバッグ ツールはローカル システムで実行されるので、生成されるデータとレポートをエンベデッド システムからローカル システムに移動する必要があります。その環境でのデバッグのプロセスには、さらに設定およびコンフィギュレーションが必要です。

Vitis IDE で embedded_accel フローのスタンドアロン デバッグを実行する手順は、次のとおりです。

  1. まず、launch_sw_emu.sh または launch_hw_emu.sh スクリプト (--package プロセスで生成) を使用して QEMU エミュレーター環境を起動します。
  2. -debug オプションを使用して Vitis IDE をスタンドアロン デバッグ モードで起動します。

Vitis IDE で embedded フローのスタンドアロン デバッグを実行するには、まず --package プロセスで生成される launch_hw_emu.sh スクリプトを使用して QEMU エミュレーター環境を起動します。

システムのエミュレーションに必要なファイルは、--package コマンドでも定義されます。つまり、エンベデッド プラットフォームのスタンドアロン デバッグ プロセスの起動は、エミュレーション スクリプトを含めたパッケージ プロセスの出力に依存します。次は、エミュレーション環境を起動するコマンド例です。

launch_hw_emu.sh -pid-file emulation.pid -no-reboot -forward-port 1440 1534 \
-enable-debug

説明:

-enable-debug
QEMU と XSIM を起動する 2 つのコマンド シェルを開き、GDB から QEMU シェルへの接続をイネーブルにします。
-forward-port
ターゲットからホストまで TCP ポートを転送して、QEMU シェルに接続します。QEMU ポートのデフォルトは 1440 です。必要であれば、たとえば 1446 などに変更できますが、launch_emulation コマンドまたはスクリプトと、vitis -debug コマンド ラインの両方で指定する必要があります。また、複数のフォワード ポートのイネーブルもサポートされます。たとえば、launch_sw_emu.sh -forward-port 1440 1534 -forward-port 9455 1560 のようにします。
-no-reboot
完了したら QEMU 環境を終了します。
-pid-file
プロセス ID を指定ファイルに書き込みます。必要であればプロセスを停止するためにも使用できます。

ハードウェア エミュレーションの場合は、QEMU システム モードを実行するターミナル ウィンドウ 2 つと、カーネルをシミュレーションする Vivado シミュレータが起動されます。

ターミナルとエミュレーションが起動されて実行されたら、別のコマンド シェルでスタンドアロン デバッグ モードで Vitis IDE が起動できます。

vitis -debug -flow embedded_accel -target hw_emu -exe vadd.elf \
-program-args vadd.xclbin -kernels vadd

説明:

vitis -debug
Vitis IDE をスタンドアロン デバッグ モードで起動します。
-flow embedded_accel
エンベデッド プロセッサ プラットフォームでアプリケーション アクセラレーション フローを指定します。
-target hw_emu
デバッグされるターゲット ビルドを指定します。
-exe vadd.elf
実行してデバッグする実行アプリケーションを指定します。
-program-args vadd.xclbin
実行ファイルへの引数として読み込む .xclbin ファイルを指定します。
vitis -debug コマンド ライン に示すように、さらに指定可能なオプションがあり、アプリケーションの設定およびビルド環境によっては必要となるものもあります。

エンベデッド システムの場合、デフォルトでエミュレーション環境またはエンベデッド システムのフォルダーから /mntの実行ファイルと .xclbin ファイルおよびその他の必要な入力ファイルが検索されます。これは、ツールを起動するときに -target-work-dir を指定すると変更できます。Debug パースペクティブが開いた状態で Vitis IDE で起動され、指定した実行アプリケーションとカーネル コードでデバッグ コンフィギュレーションが実行されます。この段階からは、GUI ベースのデバッグ環境内からステップイン、ステップオーバー、変数表示、ブレークポイントの追加などのすべてのデバッグ操作を実行できます。

データセンター プラットフォームのスタンドアロン デバッグの起動

データセンター プラットフォームのスタンドアロン デバッグの起動方法は、もう少し簡潔です。この場合、実行してデバッグするビルド ターゲットと実行ファイルを識別しておく必要があります。データセンター プラットフォームには、エミュレーション環境は必要ありません。

次の例では、ソフトウェア エミュレーション ビルドをターゲットにする data_center フローの Vitis スタンドアロン デバッグを起動します。現在のディレクトリで探される host.exe 実行ファイルが指定され、デバッグするカーネルが指定されます。

vitis -debug -flow data_center -target sw_emu -exe host.exe -kernels krnl_vadd

デフォルトでは、スタンドアロン デバッグ フローで現在のディレクトリから指定したファイルが探され、結果が書き出されます。-work-dir オプションを指定すると、デフォルトとは別の作業ディレクトリを指定できます。これは、.xclbin ファイルが別のディレクトリでビルドされる場合に必要なことがあります。

これで Vitis IDE で Debug パースペクティブが開き、GUI ベースのデバッグ環境内からステップイン、ステップオーバー、変数表示、ブレークポイントの追加などのすべてのデバッグ操作を実行できるようになります。