-
xrt.ini ファイルで必要なランタイムを設定します。
xrt.ini ファイル で説明されるように、このファイルには、デバッグ、プロファイリング、ホスト アプリケーションおよびカーネルを実行する際に XRT で記録されるメッセージを制御するためのさまざまなパラメーターを指定します。アプリケーションでのプロファイリングのイネーブル で説明されるように、アプリケーションの実行中にランタイムでデバッグおよびプロファイル データを取得できるようになります。
xrt.ini ファイルには、エンベデッド プラットフォームのパッケージ で説明されるように、ファイルとアプリケーションの実行に必要なその他のファイルも出力ファイルに含める必要があります。
ヒント: カーネル コードをエミュレーション モードでコンパイルするには、v++ -g
オプションを使用してください。 -
launch_sw_emu.sh スクリプトまたは launch_hw_emu.sh スクリプトを実行して、QEMU エミュレーション環境を起動します。
launch_sw_emu.sh -forward-port 1440 22
スクリプトは、パッケージ プロセス中にエミュレーション ディレクトリに作成され、
launch_emulator.py
コマンドを使用して QEMU を設定して起動します。エミュレーション スクリプトを起動するときに、launch_emulator.py
コマンドにオプションを指定することもできます。たとえば、-forward-port
オプションを使用すると、QEMU ポートをローカル システムのオープン ポートに転送できます。これは、次の手順 5 で説明するように、QEMU からファイルをコピーしようとする場合に必要となります。コマンドの詳細は、launch_emulator ユーティリティ を参照してください。また、
launch_hw_emu.sh -enable-debug
を指定して、QEMU および PL プロセスのために開く追加の XTERM を設定すると、アプリケーションのデバッグに役立つコマンド実行のライブ トランスクリプトを監視できます。これはデフォルトではイネーブルになっていませんが、デバッグに役立ちつことがあります。 - 必要な設定で QEMU シェルをマウントして設定します。
ザイリンクス エンベデッドのベース プラットフォームには、SD カード上の別の EXT4 パーティションに
rootfs
があります。Linux の起動後、このパーティションをマウントする必要があります。エミュレーションを手動で実行している場合は、QEMU シェルから次のコマンドを実行する必要があります。mount /dev/mmcblk0p1 /mnt cd /mnt export LD_LIBRARY_PATH=/mnt:/tmp:$LD_LIBRARY_PATH export XCL_EMULATION_MODE=hw_emu export XILINX_XRT=/usr export XILINX_VITIS=/mnt
ヒント:XCL_EMULATION_MODE
環境変数は、ソフトウェア エミュレーションの場合はsw_emu
に、ハードウェア エミュレーションの場合はhw_emu
に設定できます。これで、ホスト アプリケーションがエミュレーション モードで実行されるように設定されます。 - QEMU シェル内からアプリケーションを実行します。
ランタイム初期化 (xrt.ini) を使用して
XCL_EMULATION_MODE
環境を設定し、ホスト アプリケーションに必要なコマンド ラインを使用してホスト実行ファイルを実行します。次に例を示します。./host.elf kernel.xclbin
ヒント: このコマンド ラインでは、多くの Vitis サンプルおよびチュートリアルと同様に、ホスト プログラムが xclbin ファイルの名前を引数として使用することを想定していますが、アプリケーションによっては xclbin ファイルの名前がホスト プログラムにコード記述されていたり、アプリケーションの実行に別の方法が必要であったりすることがあります。 - アプリケーション実行が終了したら、opencl_summary.csv、opencl_trace.csv、xrt.run_summary などのファイルが生成されます。これらのファイルは、QEMU 環境内の /mnt フォルダーに含まれます。ただし、これらのファイルは、QEMU Linux システムからローカル システムにコピーしないと表示できません。これらのファイルをコピーするには、次のように
scp
コマンドを使用します。scp -P 1440 root@<host-ip-address>:/mnt/<file> <dest_path>
説明:
-
1440
は接続する QEMU ポートです。 -
root@<host-ip-address>
は、指定した IP の QEMU 下で実行される PetaLinux のルート ログインです。デフォルトのルート パスワードは root です。 - /mnt/<file> は、QEMU 環境からコピーするファイルのパスと名前です。
- <dest_path> には、コピーするローカル システム先のパスとファイル名を指定します。
次に例を示します。scp -P 1440 root@172.55.12.26:/mnt/xrt.run_summary
-
- アプリケーションのエミュレーションが完了して必要なファイルをすべてコピーしたら、Ctrl + a + x キーをクリックして QEMU シェルを終了し、Linux シェルに戻ります。 注記: QEMU 環境を終了できない場合は、起動したプロセスを強制終了して、環境を実行できます。ツールがトランスクリプトの開始時にプロセス ID (PID) をレポートします。または、エミュレーションの開始時に PID をキャプチャする
-pid-file
オプションを指定できます。
推奨: エンベデッド ハードウェア エミュレーションは、メモリ用にファイル サイズが大きいファイルを作成できるため、マシンのファイル サイズ制限は無制限または 16 GB を超える値に設定する必要があります。
ヒント: ビルドを実行する前に、Vitis 環境の設定 で説明されるように、コマンド シェルまたはウィンドウを設定します。