您的位置:首页 > 其它

龙芯Ejtag调试工具使用说明

2014-04-18 09:24 260 查看
龙芯Ejtag调试工具使用说明

一、安装:

直接解压ejtag-debug.tar.gz即可

tar zxvf ejtag-debug.tar.gz

二、运行

龙芯的Ejtag调试工具需要超级用户权限,sudo su

./ejtag_debug_usb

程序会打开ejtag.cfg执行默认的配置

运行参数如下图,一般不需要使用

三、NOR Flash烧写PMON

cpu0- shell perl scripts/hisene.pl //初始化ddr寄存器

cpu0- putelf /home/.../gzrom //将gzrom下载到内存中

cpu0- put /home/.../gzrom.bin 0x8a000000 //将要烧写的gzrom.bin放到0x8a000000

cpu0- cont //启动pmon

在minicom中便可启动pmon

PMON> eraseboot

PMON> prgboot 0xbfc00000 0xe0000

四、调试start.S

cpu0- shell perl scripts/hisene.pl //初始化ddr寄存器

cpu0- putelf /home/.../gzrom

cpu0- gdb /home/.../pmon.gdb

(gdb) hb *0x81001480

(gdb) c

(gdb) display /i $pc //显示当前pc指针指向的指令

(gdb) si

五、启动并调试PMON

cpu0- shell perl scripts/hisene.pl //初始化ddr寄存器

cpu0- putelf /home/.../gzrom

cpu0- gdb /home/.../pmon.gdb

(gdb) hb initmips

(gdb) c

六、启动并调试内核

cpu0- shell perl scripts/hisene.pl //初始化ddr寄存器

cpu0- putelf /home/.../gzrom

cpu0- cont

cpu0- putelf /home/.../vmlinux_hs3000_ramdisk

cpu0- karg console=ttyS0,115200 root=/dev/ram1 rw cca=2

cpu0- gdb /home/.../vmlinux

(gdb) hb start_kernel

(gdb) c

(gdb) b sys_read

(gdb) c

内核shell下输入ls便可以停下。

七、调试app

pmon和kernel都是运行在内核空间的,调试器处理起来比较方便,而app是运行在用户空间的,调试的时候需要进行一步虚拟地址的转换,所以龙芯Ejtag调试器没有很好支持应用程序调试,只能做一些简单的汇编单步。

cpu0- shell perl scripts/hisene.pl //初始化ddr寄存器

cpu0- putelf /home/.../gzrom

cpu0- cont //启动pmon

cpu0- putelf /home/.../vmlinux_hs3000_ramdisk

cpu0- karg console=ttyS0,115200 root=/dev/ram1 rw cca=2

cpu0-cont //启动kernel

cpu0- hb 0x4005f0

cpu0-setconfig jtag.showins 0 //关指令回显,这样会块一些

cpu0-si 100 //单步运行100次

cpu0-unsi //关si

cpu0-cont //继续运行

注意的问题:

1.龙芯的Ejtag原理是FPGA上跑一个gdbserver,然后主机通过gdb与gdbserver通信来进行调试,所以本质上是通过gdb来调试的,所用的命令也跟gdb的命令完全相同。

2.调试的过程退出gdb时,需要先detach一下,然后q退出gdb便可以回到cpu0-模式。

3.需要把源码放到对应的目录,否则无法用list命令查看源码。

4.cpu0-ctrl+r可以筛选历史命令。

5.cpu0-ctrl+x+a可以打开一个简单的调试界面,更友好的调试界面可以安装一个ddd来代替gdb。

6.cpu0-set用来进行寄存器操作,set显示所有寄存器,set pc 0xbfc00000设置寄存器值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: