记录踩坑,换了很多的设备前前后后花了不少钱,最后使用jlinkv9山寨机成功的使用OpenOCD调试树莓派4b aarch64的cpu内核,网上商家都说不支持cortex-A72和cortex-A53系列的,瞎扯淡,最关键是openOCD的信息要传递正确,将CPU的信息传递给jlink。
JTAG
关于JTAG
获取CPU的信息
开始我用cpuinfo命令去看内核,发现竟然是BCM2835,那大概是第一代树莓派的芯片我都惊了,最后看到一篇文章,知道了原来cpuinfo的命令输出是可以更改的源码更改cpuinfo信息
发现命令无法查看后去寻找树莓派的文档树莓派详细信息,发现是博通BCM2711的CPU,支持armv8指令集,cotext-A72架构
连接线路
可以参考树莓派4b详细使用
openOCD调试树莓派4b
所以在使用openOCD进行调试的时候需要指定配置文件是ra4.cfg(树莓派4b的配置文件),网上大概有2个配置文件都可以
OpenOCD config for Raspberry Pi 4
终于成功
由于我是mac下进行的gdb调试,不支持gdb-multiarch,所以可能会出错,最近打算整一台linux物理机为之后的物联网设备单片机程序调试准备。
调试逻辑程序
可以使用jlink进行逻辑程序的调试可以看到openOCD会监听4444,与3333,可以使用telnet链接4444端口,加载裸机文件到0x80000地址处,使用gdb去连接3333端口即可调试裸机程序
1 | halt |
体会
待补充~