背景:
在之前相关文章的基础上,有两个多线程(hart)的cpu,每个cpu都有一个jtag(TAP)的debug module(DM),通过菊花链相连(测试了一共有2个TAP的情况),再用下riscv-debug-spec的图,途中红色圆圈,2个通过菊花链相连。调试的时候,只会调试某个cpu的某个hart,所以需要通过target.cfg来做jtag chain的声明,以及打开哪一个hart进行调试。菊花链的连接方式在此不做介绍;
调试时候的配置:
假设菊花链的连接方式是 tdi -> cpu1 -> cpu0 -> tdo的连接方式。
配置方式如下,该文件设置为target.cfg,启动openocd的时候加入,随后连接telnet ,用之前文章描述的命令做调试。如果有其他问题,可以私信沟通。
adapter driver ust_jtagprobe
## 如下设置jtag 的频率为5Mhz
adapter speed 5000
gdb_port 3334
## 我们用tcl和telnet,选择对应的port
telnet_port 4445
tcl_port 6667
set _CHIPNAME riscv
set _CHIP1 riscv_1
set _CHIP0 riscv_0