当Hardware(硬件)构建完成(包括 AI 引擎 graph、PL 区域内核以及 PS 应用)后,您即可使用以下步骤来调试系统设计。此进程利用 Vitis IDE 从命令行启动调试环境。
- 在独立调试模式下使用
vitis -debug
选项启动 Vitis IDE。 - 使用硬件服务器 (
hw_server
) 命令连接到开发板。 - 为 AI 引擎域配置调试环境。
- 将 <project>/Hardware/package/sd_card.img 烧写到物理 SD 卡上。这样即可为您的目标平台创建一个可启动的介质。
- 将此 SD 卡插入 VCK190 评估套件的读卡器。
- 将卡的启动模式设置更改为 SD 启动模式,然后给开发板上电。
- 运行
ifconfig
以获取目标卡的 IP 地址。IP 地址用于在 Vitis IDE 中设置硬件服务器连接。此目标需连接到网络分配的 IP 地址。 - 在终端窗口中,启动硬件服务器以连接到开发板。
- 创建名为 aie_app_debug.tcl 的 Tcl 脚本以设置 AI 引擎调试环境:
#Set up the required environment # The aie_mem_socket and xrt_server ports must match what was specified in earlier commands. set aie_work_dir "<AIE_Project>/Work" set hw_server_host "gandalf" set app_name "aie_graph" #Printing the information puts "Install: $$XILINX_VITIS" puts "Application: $app_name, Work Directory: $aie_work_dir" puts "Hardware Server: $hw_server_host" set source_tcl_cmd "source ${vitis_install}/scripts/vitis/util/aie_debug_init.tcl" puts "$source_tcl_cmd" eval $source_tcl_cmd ##run the command to connect and display debug targets set aie_debug_cmd "init_aie_debug -work-dir $aie_work_dir -url tcp:$hw_server_host:3121 -jtag -name $app_name" puts "$aie_debug_cmd" eval $aie_debug_cmd
注释: 此脚本需设置$XILINX_VITIS环境变量。 - 当开发板系统和hw_server正常启动并运行后,在第二个终端窗口内以独立模式启动 Vitis IDE:
vitis -debug -flow embedded_accel -target hw -exe ./ps_app \ -program-args ${xcl_bin_dir}/binary_container_1.xclbin -host ${linux_tcf_agent_host} \ -port 1534
其中:
-
vitis -debug
- 以独立调试模式启动 Vitis IDE。
-
-flow embedded_accel
- 指定嵌入式处理器应用加速流程。
-
-target hw
- 定义要调试的硬件构建。
-
-exe ./ps_app
- 指示要运行和调试的 PS 应用。
-
-program-args ${xcl_bin_dir}/binary_container_1.xclbin
- 表示要作为实参加载到可执行文件中的 XCLBIN 文件的位置。
-
-host ${linux_tcf_agent_host}
- 指定从开发板上运行的 Linux 获取的主机名或 IP 地址:
${linux_tcf_agent_host}
。 -
-port 1534
- 指定运行 Linux TCF 代理的端口:
${linux_tcf_agent_port}
。在此例中,端口为 1534。
这样即可打开 Vitis IDE 并显示Debug(调试)透视图,同时加载 PS 应用的调试配置。
图 1. PS 调试配置 -
- 创建新的调试配置,类型为Single Application Debug(单应用调试),如下所示。
- 单击Debug(调试)以继续。
这样即可连接到 QEMU 中的 PS 应用及其相应的核上运行的 AI 引擎 graph。此应用会在所有 ELF 文件的
main()
函数处自动中断。
此时,您即可在调试环境中执行如下所有调试活动:单步进入、单步跳过、查看变量或植入断点。如需了解更多信息,请参阅 使用调试环境。