概要
システムのパッケージ で説明するように、v++ --package
または -p
ステップでは、v++
コンパイルおよびリンク ビルド プロセスの終わりに最終的な出力が生成されてパッケージされます。これは、Versal デバイス、AI エンジン、AMD Zynq™
UltraScale+™ MPSoC デバイスを含むすべてのエンベデッド プラットフォームで必須のステップです。
--package
コマンドの構文は次のとおりです。v++ --package -t <sw_emu | hw_emu | hw> --platform <platform> input.xsa \
[ -o output.xclbin --package.<options> ]
--config
オプションで指定できます。--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 ファイル システム
次に例を示します。
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-0
、a72-1
、a72-2
、a72-3
です。 -
Zynq UltraScale+ MPSoC プロセッサ コアの値は、
a53-0
、a53-1
、a53-2
、a53-3
、r5-0
、r5-1
です。 -
Zynq 7000 プロセッサ コアの値は、
a9-0
およびa9-1
です。
次に例を示します。
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