【我是学生,可以送我么】搭建树莓派4bJTAG调试平台jlink平替版

发布于:2023-01-09 ⋅ 阅读:(598) ⋅ 点赞:(0)

在这里插入图片描述

前言

最近在学习ARM64体系结构的相关知识,主要是根据笨叔的《ARM64体系结构编程与实践》,最先需要进行的就是搭建基础的环境,这种底层的体系结构学习一定要有配套的开发板,刚好手头有一个树莓派4b可以作为很好的学习平台,但是根据已有的资料来看,大部分的仿真平台都使用的是jlink,这个仿真器可以去淘宝看一下,价格基本上都在100+,作为学生,我买不起,所以研究了一下平替方案。特此记录一下。当然我是使用的win+wsl进行的调试,如果使用纯Linux环境需要一些调整,但是也不会太大。



平替方案

树莓派4b采用的是jtag作为调试端口的,那么按照arm官网所说,只要是带有jtag端口的都可以对其进行调试,一番搜索下来发现了一个国人开源方案就是nanodap开源地址(需要科学上网)。
在这里插入图片描述
经过研究开源地址发现,它采用了最简单的stm32f103c8t6作为主控,所以价格相对不高,并且是基于arm开源项目cmsis-dap,所以不是像jlink ob那样提示盗版,最关键的是大多数ob版jlink不会引出jtag调试口,并且这个自带串口,连一个ch340的钱也省了。反正蛮好用的。但是因为大多数资料基于jlink,需要做一些修改。


环境搭建

1. 硬件连接

nandap 树莓派
TMS 13
TCK 22
TDI 37
TDO 18
nRST 15
TX 10
RX 08
GND GND

注意上面的TX和RX是有交叉的,另外就是GND连接到任意的GND上

在这里插入图片描述

2.软件下载

这次模拟主要用到的是openocd,可以从这里下载github,注意对应系统,我是win里面运行这个所以直接下载了win版本。
在这里插入图片描述
然后将其解压到任意目录,然后win需要将解压文件的bin文件加入到环境变量,也就是
在这里插入图片描述
当然我看了一下linux的,相对来说没有那么麻烦,只要进入解压好的位置,输入下面的指令就好了

sudo ln -s ./bin/openocd /usr/local/bin/openocd

无论win还是linux里,在终端里输入openocd有以下反应证明安装成功。
在这里插入图片描述


配置修改

daplink配置修改

我们使用的默认的配置文件为./interface/cmsis-dap.cfg,直接打开可以看到如下的代码

adapter driver cmsis-dap

这只是帮助我们连接了dap,没有进行配置,比如选择jtag口之类的。所以我们添加两行:

# 选择jtag作为调试口
transport select jtag	
# 绑定到任意ip,可以支持远程连接
bindto 0.0.0.0			

树莓派配置修改

其实最新版的openocd带有bcm2711的配置文件,为了和书上一样,我们只用改一个小部分就行了

#for { set _core 0 } { $_core < $_cores } { incr _core } { 注释掉原来的
for { set _core 0 } { $_core < 1 } { incr _core } { #改成只对cpu0调试

其实这个地方就是只调试0号cpu,毕竟启动的时候只有0号cpu在运行。


开始调试

进入调试模式

只要在终端里进入openocd文件夹输入以下指令就好了

openocd -f ./interface/cmsis-dap.cfg -f ./target/bcm2711.cfg

然后看到下图就算是成功进入调试模式可以进行其他操作了:
在这里插入图片描述

wsl连接

因为wsl2默认不支持串口,如果将usb设备映射过去过于麻烦,所以我直接用win运行openocd,wsl那边通过网络直接进行连接就好了。关于wsl网络不通的原因可以看我这篇文章
然后就gdb连接和telnet链接的时候输入win的ip就好了。


后记

最近开始学习ARM64相关的知识,如果遇到和书上不一样的地方会在这个专辑里面进行记录,大家如果也在学习相关方面的知识可以跟我一起交流哦。