1.ejtag是什么??
ejtag是一种mips下的软件调试工具,兼顾程序烧录,问题定位,死机排故等功能,常用的操作包括烧录pmon,内核,检测cpu执行,读取外设状态等;
2.参考文档:
doc/目录下的文档,有硬件连接图和软件操作指导,比较全;
3.常用操作如下
pmon烧录
下面以2K1000 linux下为例子(win下类似)
1.进入到ejtag,如下:
cd /home/jdm/ejtag/ejtag-debug
2.执行ejtag程序,如下:
./ejtag_debug_usb
cpu0 -
3.验证线路连接是否正常,读处理器的ejtag id寄存器,如果是0x20010819或者是0x5a5a5a5a都说明连接正确,如下:
cpu0 -jtagregs d8 1 1
00000001: 000000005a5a5a5a ZZZZ....
4.配置对应的config文件,因为ejtag是同一个程序,可以调试所有的mips cpu,但是需要此步骤来区分具体的型号cpu,如下:
cpu0 -source configs/config.ls2k
5.暂停cpu执行,如下:
cpu0 -set
#set
zero:0x0 at:0xffffffff8f06986c v0:0x25 v1:0xc8
a0:0x0 a1:0xffffffff8f26c49c a2:0x0 a3:0x0
t0:0x0 t1:0x0 t2:0xffffffffffffffff t3:0x0
t4:0xffffffff80000000 t5:0xfffffffffffffff0 t6:0xffffffff8b01f300 t7:0x8
s0:0xffffffff8f26c4f8 s1:0x1 s2:0x0 s3:0x1
s4:0xffffffff8f130000 s5:0xffffffff8f26c440 s6:0xffffffff8f26c49c s7:0x1
t8:0x8 t9:0x0 k0:0x0 k1:0x0
gp:0xffffffff8f99e000 sp:0xffffffff8f00bd68 s8:0xffffffff8f00bde0 ra:0xffffffff8f06cb28
status:0x340000e0 lo:0x0 hi:0x0 badvaddr:0xa
cause:0x40008000 pc:0xffffffff8f06ccdc epc:0x351a20823c078a02
cpu0 -
6.烧录pmon,默认去/tmp/目录取gzrom.bin文件烧录,当然,烧写命令后面也可以跟文件路径,进行指定文件烧录,如下:
cpu0 -program_cachelock /tmp/gzrom-dtb.bin
稍等一会烧录完成即可
7.cont,释放cpu控制权,如下:
cpu0 -cont
#cont
注意:cpu0 -后均为输入,下面为输入命令后的打印;
cpu执行位置
1.执行cpus 0可以检测cpu核的执行地址
cpu0 -cpus 0
[00] 0xffffffff8f0abcfc [00] 0xffffffff8f01360c
[00] 0xffffffff8f06ccd8 [00] 0xffffffff8f013608
[00] 0xffffffff8f0d171c [00] 0xffffffff8f013608
使用ctrl c来返回到可操作状态