挥码枪是格蠹科技研发的硬件调试器,可以使用它来调试GDK5的底层代码,包括U-Boot和Linux内核。
1. 启用调试接口
1.1 使用USB2TTL连结GDK5的调试串口(UART2,PH2.0转出的三芯杜邦线),在主机上打开MobaXterm,建立串口会话,使用1500000波特率。
1.2 准备好Xterm后,给GDK5上电,在Xterm中可以看到GDK5固件输出的调试信息。此时输入11,进入U-Boot命令行,提示符为:
gdk5>
1.3 在U-Boot命令行中输入如下命令:
mw 0xfdc6001c 0xf0002000
mw 0xfdc60020 0xf0002
再输入md 0xfdc6001c显示刚才所写的寄存器内容:
gdk5> md 0xfdc6001c
fdc6001c: 00002110 00000112 00000000 00000000 .!..............
fdc6002c: 00000000 00000000 00000000 00000000 ................
fdc6003c: 00000000 00000000 00000000 00000000 ................
fdc6004c: 00000000 00004400 00000000 00000000 .....D..........
fdc6005c: 00003300 00003333 00003333 00000033 .3..33..33..3...
fdc6006c: 00003300 00000000 00001000 00000011 .3..............
fdc6007c: 00000000 0000aaa5 000055aa 0000a955 .........U..U...
2. 连结挥码枪
将挥码枪的SD接头插到GDK5的SD口,位置在网口旁边。把挥码枪的另一端插到主机的USB口。
3. 启动NanoCode
如果还没有安装NanoCode,那么请先安装。安装好之后,启动NanoCode,点击左侧工具栏的调试按钮,选择内核调试,调出内核调试对话框。先切换到USB2/3页面,选择OpenOCD,在编辑框中输入gdk5,然后点击启动按钮开始调试会话。
启动调试会话后,NanoCode内置的NDB调试器便会通过挥码枪与GDK5芯片中的CoreSight设施对话,如果一切顺利,那么NDB会显示如下信息:
Starting KD session type=usb,proto=ocd,opt=rxsbu,targetname=gdk5
debug_level: 3
GDDBG cmd NTP-DAP drivers NTP-DAP
Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x1588, serial=202403307414abcddbfdbc1c2000410fa5a5a5a547454455
clock speed 1000 kHz
SWD DPIDR 0x2ba01477
rk3566.core0: hardware has 6 breakpoints, 4 watchpoints
rk3566.core1: hardware has 6 breakpoints, 4 watchpoints
rk3566.core2: hardware has 6 breakpoints, 4 watchpoints
rk3566.core3: hardware has 6 breakpoints, 4 watchpoints
上面信息代表通过ADI协议成功检测到目标芯片中的四个A55 CPU。

当NDB显示出命令行提示符后,便可以输入各种调试命令了,比如可以先输入r来显示当前CPU的寄存器:
r
x0=0xffffff807fac6080 x1=0x00000000003223d8 x2=0xffffff807fac6180 x3=0x00000000003223d6
x4=0xffffffc075a09000 x5=0x00ffffffffffffff x6=0x00000041ad869336 x7=0x00000000000000da
x8=0xffffffc00a5dfe30 x9=0xffffffc009244cac x10=0x0000000000000990 x11=0x0000000000000001
x12=0xffffffc00944a910 x13=0xffffffc00a5f1048 x14=0xffffffc00926a6f0 x15=0x0000000000028c49
x16=0x0000000000063b1c x17=0x0000000000054e1f x18=0x0000000000000000 x19=0xffffffc00a0a9008
x20=0x0000000000000000 x21=0xffffffc00a5d88f0 x22=0xffffffc00a0bb0e8 x23=0xffffffc00a5d8914
x24=0x0000000000000000 x25=0x0000000000000000 x26=0xffffffc00a5df440 x27=0x0000000000000400
x28=0x0000000002140018 fp=0xffffffc00a5d3eb0 lr=0xffffffc009244574 sp=0xffffffc00a5d3eb0
pc=0xffffffc009244518 pstate=0x0000000060c00089 - Z C - - - U P - - - I - EL2
lk!_entry+ffffffc0`09244518:
ffffffc009244518 d65f03c0 ret
后面设置符号文件都操作就与调试幽兰代码本和GDK8等一样了,可以参考幽兰wiki或者B站的视频,有问题也可以在微信群里提出。
最后编辑:admin 更新时间:2025-11-10 13:13