简介
如 封装系统 中所述,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> ]
--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>
用于指定 TCP 端口,此端口中的仿真器 (emulator) 会监听从调试器到 Versal
AI 引擎调试核的传入连接。默认端口值为 10100
。
例如:
v++ -l --package.aie_debug_port 1440
--package.bl31_elf
--package.bl31_elf <arg>
其中 <arg>
用于指定到 Arm 可信 FW ELF(在 A72 #0 核上执行)的绝对路径或相对路径。如果不指定该选项,则 Vitis 编译器会在平台中搜索 bl31。
例如:
v++ -l --package.bl31_elf ./arm_trusted.elf
--package.boot_mode
--package.boot_mode <arg>
<arg>
用于指定 <ospi | qspi | sd>
启动模式,此模式用于在仿真 (emulation) 中或在硬件上运行应用。对于嵌入式平台,默认启动模式为 sd
。对于数据中心平台,模式为 qspi
或 ospi
(如适用)。 xilinx_vck190_v202310_1
平台不支持 qspi
选项。配置为支持该选项的定制平台则有效。ospi
选项仅适用于 Versal 数据中心平台。例如:
v++ -l --package.boot_mode sd
--package.defer_aie_run
--package.defer_aie_run
该选项可指定嵌入式处理器应用 (PS) 启用 Versal AI 引擎核。如不指定该选项,则此工具会生成 CDO 命令以改为在 PDI 加载中启用 AI 引擎核。默认禁用该选项,或者将其设为 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>
用于指定到设备树二进制文件 (DTB) 的绝对路径或相对路径,此二进制文件用于在 APU 上加载 Linux。如果不指定该选项,则 Vitis 编译器会在平台中搜索 dtb。
例如:
v++ -l --package.dtb ./device_tree.image
--package.emu_ps
--package.emu_ps <x86 | qemu>
指定已为 x86 处理器(而不是 Arm® 处理器)编译 PS 应用代码,并将在系统操作系统下运行,用于 C 语言仿真而不是 PetaLinux/QEMU。默认设置为 x86。要了解如何编译 PS 应用以供在 x86 处理器上使用,请参阅 使用 PS on x86 执行嵌入式处理器仿真。
sw_emu
目标有效。例如:
v++ -l --package.emu_ps x86
--package.enable_aie_debug
--package.enable_aie_debug
如果启用该选项,那么此工具会在 PDI 加载期间生成 CDO 命令以停止 AI 引擎核。默认禁用该选项,或者将其设为 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 内核镜像文件的绝对路径或相对路径。覆盖平台中可用的现有镜像。此平台镜像文件可从 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>
用于指定 TCP 端口,此端口中的仿真器 (emulator) 会监听从调试器到 PS 调试核的传入连接。
例如:
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