在嵌入式处理器平台上运行仿真 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文
提示: 运行构建前,请按 设置 Vitis 环境 中所述设置命令 shell 或窗口。
  1. xrt.ini 文件中设置期望的运行时设置。

    xrt.ini 文件 中所述,运行主机应用和内核执行时,此文件可指定各种参数用于控制 XRT 中的调试、剖析和消息日志记录。如 在应用中启用剖析 中所述,这样即可支持运行时在运行应用时捕获调试和剖析数据。

    xrt.ini 文件和运行应用所需的所有其它文件都必须包含在输出文件内,如 嵌入式平台封装 中所述。

    提示: 为仿真 (emulation) 模式编译内核代码时,请务必使用 v++ -g 选项。
  2. 运行 launch_sw_emu.sh 脚本或 launch_hw_emu.sh 脚本即可启动 QEMU 仿真环境。
    launch_sw_emu.sh -forward-port 1440 22

    此脚本是在封装进程期间在仿真 (emulation) 目录中创建的,它使用 launch_emulator.py 命令来设置和启动 QEMU。启动仿真 (emulation) 脚本时,您还可以为 launch_emulator.py 命令指定选项。例如,指定 -forward-port 选项即可将 QEMU 端口转发到本地系统上打开的端口。尝试从 QEMU 复制文件时,需使用该选项,如以下步骤 5 中所述。请参阅 launch_emulator 实用工具 以获取该命令的详细信息。

    另一个示例是指定 launch_hw_emu.sh -enable-debug 以配置要打开的其它 XTERM,以供 QEMU 和 PL 进程观测命令执行时处于活动状态的脚本以帮助调试应用。默认不启用该选项,但它对于调试很有用。

  3. 使用所需设置来装载和配置 QEMU shell。

    赛灵思嵌入式基本平台将 rootfs 包含在 SD 卡的独立 EXT4 分区内。启动 Linux 后,需装载此分区。如果手动运行仿真 (emulation),则需要从 QEMU shell 运行以下命令:

    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(用于硬件仿真)。这样即可将主机应用配置为在仿真 (emulation) 模式下运行。
  4. 从 QEMU shell 内运行应用。

    通过运行时初始化 (xrt.ini) 设置好 XCL_EMULATION_MODE 环境后,按主机应用要求,通过命令行来运行可执行文件。例如:

    ./host.elf kernel.xclbin
    提示: 此命令行假定主机程序编写时采用 xclbin 文件的名称作为实参,就像大部分 Vitis 示例和教程一样。但您的应用可能已将 xclbin 文件的名称硬编码到主机程序中,或者可能要求采用其它方法来运行此应用。
  5. 应用运行完成后,运行时可能已生成某些文件,例如,opencl_summary.csvopencl_trace.csvxrt.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 用户登录信息。默认 root 用户密码为“root”。
    • /mnt/<file> 是要从 QEMU 环境复制的文件的路径和文件名。
    • <dest_path> 用于指定将文件复制到本地系统上的路径和文件名。
    例如:
    scp -P 1440 root@172.55.12.26:/mnt/xrt.run_summary
  6. 当应用完成仿真 (emulation) 并且您已复制所有必要文件后,单击Ctrl + a + x键即可终止 QEMU shell 并返回到 Linux shell。
    注释: 如果无法终止 QEMU 环境,可结束 QEMU 启动的用于运行此环境的进程。该工具会在脚本启动时报告进程 ID (pid),或者您可以指定 -pid-file 选项以在启动仿真 (emulation) 时捕获 pid。