--package オプション - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

概要

システムのパッケージ で説明するように、v++ --package または -p ステップでは、v++ コンパイルおよびリンク ビルド プロセスの終わりに最終的な出力が生成されてパッケージされます。これは、Versal デバイス、AI エンジンAMD Zynq™ UltraScale+™ MPSoC デバイスを含むすべてのエンベデッド プラットフォームで必須のステップです。

Versal プラットフォームの --package コマンドの構文は次のとおりです。
v++ --package -t <sw_emu | hw_emu | hw> --platform <platform> input.xsa \
[ -o output.xclbin --package.<options> ]
ヒント: Vitis コンパイラのコンフィギュレーション ファイル で説明するように、パッケージ コマンド オプションはすべて、コンフィギュレーション ファイルに--config オプションで指定できます。
Versal 以外のプラットフォームの場合、--package コマンドの構文は次のようになります。
v++ --package -t <sw_emu | hw_emu | hw> --platform <platform> input.xclbin \
[ -o output.xclbin --package.<options> ]

上記の構文に示すように、--package.<options> には、次のようにさまざまなオプションを指定できます。

--package.aie_debug_port

--package.aie_debug_port <arg>

<arg>: Versal AI エンジン コアをデバッグするデバッガーから入ってくる接続をエミュレーターがリッスンする TCP ポートを指定します。デフォルトのポート値は、10100 です。

次に例を示します。

v++ -l --package.aie_debug_port 1440 

--package.bl31_elf

--package.bl31_elf <arg>

<arg>: A72 #0 コアで実行される Arm trusted FW ELF への絶対パスまたは相対パスを指定します。このオプションを指定しない場合、Vitis コンパイラはプラットフォームで bl31 を検索します。

次に例を示します。

v++ -l --package.bl31_elf ./arm_trusted.elf 

--package.boot_mode

--package.boot_mode <arg>
<arg>: エミュレーション中またはハードウェアでアプリケーションを実行される際に使用される <ospi | qspi | sd> ブート モードを指定します。エンベデッド プラットフォームの場合、デフォルトのブート モードは sd です。データセンター プラットフォームの場合は、必要に応じて qspi または ospi を選択します。
ヒント: xilinx_vck190_v202310_1 プラットフォームでは、qspi オプションはサポートされません。サポートするよう設定されたカスタム プラットフォームでは機能します。ospi オプションは Versal データセンター プラットフォームにのみ使用します。

次に例を示します。

v++ -l --package.boot_mode sd 

--package.defer_aie_run

--package.defer_aie_run

Versal AI エンジン コアをエンベデッド プロセッサ (PS) アプリケーションでイネーブルにするかどうか指定します。このオプションを指定しない場合は、PDI ロード中に AI エンジン コアをイネーブルにする CDO コマンド生成されます。デフォルトでは、このオプションはディスエーブルまたは FALSE になっています。

次に例を示します。

v++ -l --package.defer_aie_run

--package.domain

--package.domain <arg>

<arg>: ドメイン名を指定します。このオプションを指定しない場合、Vitis コンパイラはソフトウェア プラットフォーム (SPFM) ファイルからデフォルトのドメインを選択します。AI エンジン デザインでは、aiengine を指定する必要があります。

次に例を示します。

v++ -l --package.domain xrt

--package.dtb

--package.dtb <arg>

<arg>: APU に Linux をロードするのに使用されるデバイス ツリー バイナリ (DTB) への絶対パスまたは相対パスを指定します。このオプションを指定しない場合、Vitis コンパイラはプラットフォームで dtb を検索します。

次に例を示します。

v++ -l --package.dtb ./device_tree.image

--package.emu_ps

--package.emu_ps <x86 | qemu>

PS アプリケーション コードを Arm® プロセッサではなく x86 プロセッサ用にコンパイルし、PetaLinux/QEMU ではなく C シミュレーション用にシステム OS で実行するように指定します。デフォルト値は x86 です。PS アプリケーションを x86 プロセッサ用にコンパイルするには、PS on x86 を使用したエンベデッド プロセッサ エミュレーション を参照してください。

重要: このオプションは、sw_emu ターゲットににのみ有効です。

次に例を示します。

v++ -l --package.emu_ps x86

--package.enable_aie_debug

--package.enable_aie_debug

イネーブルにすると、PDI ロード中に AI エンジン コアを停止する CDO コマンドが生成されます。デフォルトでは、このオプションはディスエーブルまたは FALSE になっています。

次に例を示します。

v++ -l --package.enable_aie_debug 

--package.image_format

--package.image_format <arg>

<arg>: SD カードで使用される <ext4 | fat32> で出力イメージ ファイル形式を指定します。Linux ドメインを持つエンベデッド プラットフォームの場合、デフォルトのイメージ形式は ext4 です。それ以外の場合、イメージ形式は fat32 です。

  • ext4: Linux ファイル システム
  • fat32: Windows ファイル システム
重要: EXT4 形式は、Windows ではサポートされません。

次に例を示します。

v++ -l --package.image_format fat32 

--package.kernel_image

--package.kernel_image <arg>

<arg>: Linux カーネル イメージ ファイルへの絶対パスまたは相対パスを指定します。プラットフォームで使用可能な既存のイメージを上書きします。プラットフォーム イメージ ファイルは、https://japan.xilinx.com からダウンロードできます。詳細は、Vitis ソフトウェア プラットフォームのインストール を参照してください。このオプションを指定しない場合、Vitis コンパイラは Linux イメージをプラットフォームから SD カード フォルダーにコピーします。

次に例を示します。

v++ -l --package.kernel_image ./kernel_image 

--package.no_image

--package.no_image

SD カードのイメージ作成をバイパスします。--package.boot_mode sd で有効です。デフォルトでは、このオプションはディスエーブルまたは FALSE になっています。

--package.out_dir

--package.out_dir <arg>

<arg>: --package コマンドの出力ディレクトリへの絶対パスまたは相対パスを指定します。デフォルトの出力ディレクトリは、Vitis コンパイラの起動元ディレクトリです。

次に例を示します。

v++ -l --package.out_dir ./out_dir 

--package.ps_debug_port

--package.ps_debug_port <arg>

<arg>: PS コアをデバッグするデバッガーから入ってくる接続をエミュレーターリッスンする TCP ポートを指定します。

次に例を示します。

v++ -l --package.debug_port 3200 

--package.ps_elf

--package.ps_elf <arg>

<arg>: <path_to_elf_file,core> を指定します。

  • path_to_elf_file: PS コアの ELF ファイルを指定します。
  • core: 実行する PS コアを指定します。

ベアメタル ELF ファイルがデバイス プロセッサ コア上で実行されている場合に使用されます。このオプションでは、ブート イメージに含める ELF ファイルおよびプロセッサ コアのペアを指定します。サポート デバイスに使用可能なプロセッサは、次のとおりです。

  • Versal プロセッサ コアの値は、a72-0a72-1a72-2a72-3 です。
  • Zynq UltraScale+ MPSoC プロセッサ コアの値は、a53-0a53-1a53-2a53-3r5-0r5-1 です。
  • Zynq 7000 プロセッサ コアの値は、a9-0 および a9-1 です。
ヒント: 各 ELF/コアのペアごとにオプションを指定します。

次に例を示します。

v++ -l --package.ps_elf a53_0.elf,a53-0 --package.ps_elf r5_0.elf,r5-0

--package.rootfs

--package.rootfs <arg>

<arg>: 処理された Linux ルート ファイルのシステム ファイルへの絶対パスまたは相対パスを指定します。プラットフォーム RootFS ファイルは、Xilinx.com からダウンロードできます。詳細は、Vitis ソフトウェア プラットフォームのインストール を参照してください。このオプションを指定しない場合、Vitis コンパイラはソフトウェア プラットフォーム (SPFM) ファイルからデフォルトの rootfs パスを選択します。

次に例を示します。

v++ -l --package.rootfs ./rootfs.ext4

--package.sd_dir

--package.sd_dir <arg>

<arg>: sd_card ディレクトリ/イメージにパッケージするフォルダーを指定します。ディレクトリの内容が sd_card フォルダー内のフォルダーにコピーされます。

次に例を示します。

v++ -l --package.sd_dir ./test_data 

--package.sd_file

--package.sd_file <arg>

<arg>: sd_card ディレクトリ/イメージにパッケージする ELF またはその他のデータ ファイルを指定します。このオプションを繰り返し使用すると、複数のファイルを sd_card に追加できます。.xclbin および libadf.a ファイルは、out-dir または sd_card フォルダーに自動的にコピーされます。

次に例を示します。

v++ -l --package.sd_file ./arm_trusted.elf 

--package.uboot

--package.uboot <arg>

<arg>: U-Boot ELF ファイルへのパスを指定します。これにより、プラットフォーム U-Boot は使用されなくなります。このオプションを指定しない場合、Vitis コンパイラはプラットフォームで uboot を検索します。

次に例を示します。

v++ -l --package.uboot ./uboot.elf