Xilinx XSCT 调试jtag-uart
- XSCT介绍
XSCT 是xilinx software command-line tool 的简称 , 具体请参照UG1208; Jtag-uart 是比较偏门的一个应用,就是在没有外接uart的情况下,通过jtag口来获取处理器的stdio数据,实现jtag-uart的交互;
- 实验环境介绍
开发工具版本Vivado 2019.2 , vitis2019.2
开发硬件平台:zcu106
- 开发流程
- 在vivado中打开一个zcu106 mpsoc的example工程,并在bd中加入microblaze debug Module(MDM),MDM的配置如下图所示;
-
- 综合、实现并生成bitstream文件,在vitis平台中导入硬件并新建一个app工程,并修改app对应的bsp的设定,将STDIO修改成psu_coresight_0 ,编译工程生成boot.bin ;
-
- 调用xsct,这部分需要参照UG1208,比较常用的命令有:
- connect 建立连接
- Disconnect 断开连接
- Targets 指向命令,可以用简写ta 也可以用target,
- Jtagterminal -start 启动jtag-uart终端
- Jtagterminal -stop 关闭jtag-uart终端
- Dow 下载执行文件
- Fpga 下载bitstream文件
- Bpadd 添加调试断点 breakpoint
- Bpremove 移除断点
- Bpenable 启动断点调试
- Bpdisable 关闭断点调试
- Loadhw 下载初始化配置文件
- Con 启动运行处理器
- Stop 停止选中的处理器
- 这边是将编译生成的boot.bin直接copy到SD卡中放到板子上运行的,所以操作的步骤比较少,只要按照如下步骤就可以完成调用jtagterminal ;
- 连接usb jtag;
- 给开发板上电;
- 在vitis 中打开xsct窗口;
- Xsct:connect
- Xsct:ta 查看处理器状态
- Xsct:jtagterminal -start 启动jtag-uart终端
- Xsct:jtagterminal -stop 调试结束关闭jtag-uart 终端
- 心得体会
- xsct是通过JTAG直接操作硬件进行调试,所以是最直接的调试手段,甚至在板子不能通过外部flash 或SD卡启动的情况下,依然可以通过xsct去调试 ;
- Xsct 在使用dow命令的时候,需要在路径外加一个“{}”,这是因为linux下路径表示是’/’,windows下的路径是’\’ , 两者不兼容,所以xsct采用加一个“{}”来cover这个问题;如果直接copy路径会出现找不到download文件或路径的错误;
- 在bsp中选择stdio的默认连接的时候,需要选择 psu_coresight_0 ,不要选择mdm_0 , 我在这个地方卡了一天,一直看不到terminal打印数据;