Vitis IDE では、コマンド ライン フローを使用してビルドしたプロジェクトをデバッグ ツールを開くことができます。
エンベデッド プラットフォームのスタンドアロン デバッグの起動
スタンドアロン デバッグ フローでは、エンベデッド プロセッサ アプリケーション アクセラレーション フロー (embedded_accel
) またはエンベデッド プロセッサ ソフトウェア開発フロー (embedded
) の両方がサポートされます。エンベデッド プラットフォームの場合、アプリケーションはデバイスの Arm プロセッサで実行され、システムを起動してアプリケーションおよびカーネルを読み込むのに必要なファイルはリモート システムに含まれますが、デバッグ ツールはローカル システムで実行されるので、生成されるデータとレポートをエンベデッド システムからローカル システムに移動する必要があります。その環境でのデバッグのプロセスには、さらに設定およびコンフィギュレーションが必要です。
Vitis IDE で embedded_accel
フローのスタンドアロン デバッグを実行する手順は、次のとおりです。
- まず、launch_sw_emu.sh または launch_hw_emu.sh スクリプト (
--package
プロセスで生成) を使用して QEMU エミュレーター環境を起動します。 -
-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 ファイルを指定します。
エンベデッド システムの場合、デフォルトでエミュレーション環境またはエンベデッド システムのフォルダーから /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 ベースのデバッグ環境内からステップイン、ステップオーバー、変数表示、ブレークポイントの追加などのすべてのデバッグ操作を実行できるようになります。