0%

JTAG调试-树莓派4b

记录踩坑,换了很多的设备前前后后花了不少钱,最后使用jlinkv9山寨机成功的使用OpenOCD调试树莓派4b aarch64的cpu内核,网上商家都说不支持cortex-A72和cortex-A53系列的,瞎扯淡,最关键是openOCD的信息要传递正确,将CPU的信息传递给jlink。

JTAG

关于JTAG

IOT-security

获取CPU的信息

开始我用cpuinfo命令去看内核,发现竟然是BCM2835,那大概是第一代树莓派的芯片我都惊了,最后看到一篇文章,知道了原来cpuinfo的命令输出是可以更改的源码更改cpuinfo信息

image-20220825124004868

发现命令无法查看后去寻找树莓派的文档树莓派详细信息,发现是博通BCM2711的CPU,支持armv8指令集,cotext-A72架构

连接线路

可以参考树莓派4b详细使用

image-20220825124554671

image-20220825124637741

openOCD调试树莓派4b

所以在使用openOCD进行调试的时候需要指定配置文件是ra4.cfg(树莓派4b的配置文件),网上大概有2个配置文件都可以

sean-lawless

OpenOCD config for Raspberry Pi 4

image-20220825131413240

终于成功

由于我是mac下进行的gdb调试,不支持gdb-multiarch,所以可能会出错,最近打算整一台linux物理机为之后的物联网设备单片机程序调试准备。

image-20220825125633179

调试逻辑程序

可以使用jlink进行逻辑程序的调试可以看到openOCD会监听4444,与3333,可以使用telnet链接4444端口,加载裸机文件到0x80000地址处,使用gdb去连接3333端口即可调试裸机程序

1
2
3
halt
load_image /home/bigmagic/work/rt-thread2/bsp/raspberry-pi/raspi4/rtthread.bin 0x80000
step 0x80000

jlink调试命令

体会

待补充~