Xilinx XSCT 调试jtag-uart , jtagterminal

Xilinx XSCT 调试jtag-uart

 

  1. XSCT介绍

XSCT 是xilinx software command-line tool 的简称 , 具体请参照UG1208; Jtag-uart 是比较偏门的一个应用,就是在没有外接uart的情况下,通过jtag口来获取处理器的stdio数据,实现jtag-uart的交互;

  1. 实验环境介绍

开发工具版本Vivado 2019.2 , vitis2019.2

开发硬件平台:zcu106

  1. 开发流程
    1. 在vivado中打开一个zcu106 mpsoc的example工程,并在bd中加入microblaze debug Module(MDM),MDM的配置如下图所示;

 

 

    1. 综合、实现并生成bitstream文件,在vitis平台中导入硬件并新建一个app工程,并修改app对应的bsp的设定,将STDIO修改成psu_coresight_0 ,编译工程生成boot.bin ;

 

 

    1. 调用xsct,这部分需要参照UG1208,比较常用的命令有:
  1. connect   建立连接
  2. Disconnect 断开连接
  3. Targets    指向命令,可以用简写ta 也可以用target,
  4. Jtagterminal -start 启动jtag-uart终端
  5. Jtagterminal -stop 关闭jtag-uart终端
  6. Dow       下载执行文件
  7. Fpga 下载bitstream文件
  8. Bpadd   添加调试断点 breakpoint
  9. Bpremove 移除断点
  10. Bpenable 启动断点调试
  11. Bpdisable 关闭断点调试  
  12. Loadhw 下载初始化配置文件
  13. Con 启动运行处理器
  14. Stop 停止选中的处理器
    1. 这边是将编译生成的boot.bin直接copy到SD卡中放到板子上运行的,所以操作的步骤比较少,只要按照如下步骤就可以完成调用jtagterminal ;
  1. 连接usb jtag;
  2. 给开发板上电;
  3. 在vitis 中打开xsct窗口;
  4. Xsct:connect
  5. Xsct:ta 查看处理器状态
  6. Xsct:jtagterminal -start 启动jtag-uart终端
  7. Xsct:jtagterminal -stop 调试结束关闭jtag-uart 终端

 

 

  1. 心得体会
    1. xsct是通过JTAG直接操作硬件进行调试,所以是最直接的调试手段,甚至在板子不能通过外部flash 或SD卡启动的情况下,依然可以通过xsct去调试 ;
    2. Xsct 在使用dow命令的时候,需要在路径外加一个“{}”,这是因为linux下路径表示是’/’,windows下的路径是’\’ , 两者不兼容,所以xsct采用加一个“{}”来cover这个问题;如果直接copy路径会出现找不到download文件或路径的错误;
    3. 在bsp中选择stdio的默认连接的时候,需要选择 psu_coresight_0 ,不要选择mdm_0 , 我在这个地方卡了一天,一直看不到terminal打印数据;