龙芯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设置寄存器值。
一、安装:
直接解压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设置寄存器值。
相关文章推荐
- 调试工具 Postman 使用说明
- XP环境下调试诊断工具drwtsn32的使用说明
- IE开发者人员工具使用说明 pptx
- Softice使用指南(异域の蜗牛注:经典的调试工具,几乎能调试所有程序.感谢ddcrack让我看了这么好的文章.分享)
- Unix调试工具dbx使用方法
- 我是怎么发现并解决项目页面渲染效率问题的(IE调试工具探查器的使用)
- 【转】gdb程序调试工具使用简介
- jsdoc-toolkit文档工具使用说明
- HTTP调试工具 Fiddler的使用方法 介绍 下载
- 微信手机端调试工具-微信Web开发者工具使用教程
- 6.5 Git 工具 - 使用 Git 调试
- Android或Linux调试addr2line工具锁定命令的使用
- [转]HTTP调试工具:Fiddler的使用方法介绍
- Sco-Unix调试工具dbx使用方法
- IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
- gdb调试工具的简单使用
- Devstack — screen 调试工具的使用
- Oracle Apps DBA工具:ADADMIN使用说明
- GIS图片缓存工具GeoWebCache的使用说明
- 几款黑客常用小工具的使用说明