EJTAG调试总计

(1)去http://ftp.loongnix.org/embed/ls1b/ejtag/找到能用的tar包下载到自己的电脑上

(2)解压到指定的一个任意路径

(3)搭建硬件环境,电脑,调试主板,EJTAG调试器,保证链接正确。

(4)进入到刚刚解压好的ejtag_debug文件夹路径下,执行 sudo ./ejtag_debug_usb -t


检测硬件环境和软件版本是否可用:

1:将ejtag插入usb口,可以观察到ejtag的两个指示灯都亮,1s后只有一个指示灯亮,说明EJTAG硬件没有问题

2:sudo ./ejtag_debug_usb -t运行软件

      jtagled 1  命令绿灯一直亮,jtagled 0 命令绿灯闪  说明USB驱动安装没问题

3:运行usbver 命令返回值如果为一个日期,2013年后才可以使用

4:运行 jtagregs d8 1 1来读取ejtag id寄存器     返回值为0x000000005a5a5a5a    说明链接正确

5:运行set 命令读取通用寄存器,如果返回值为非零数值,说明处理器运行起来了,ejtag链接也没有问题。

6:如果上一操作迟迟没有返回结果,ctrl-c退出。可能是处理器在无程序的情况下运行到地址空洞,设备没有响应,总线卡住了,可以运行resetcpu命令来复制cpu



ejtag-debug 参数:

./ejtag_debug_usb [-dlStch] [-e cmd] [-T n]

-d:   version on show debug message

-e:   "cmd":run cmd

-l:    do not use read line

-S:    log disassemble info

-s:    run cmd server

-t:    disable timer

-T n:    set timer n ms

-c:    do not load cfg file

-h:    show this help

  注意:

(1)ejtag-debug需要超级用户来运行

(2)配置文件是ejtag.cfg程序自动打开并运行里面的文件



ejtag-debug 由很多小命令,支持名字自动补全,在首行加#表示注释


【1】h    [cmd]    查看帮助

【2】setconfig [configname]    [value]             配置命令

           core.cpucount         设置cpu数目

           core.cpuno               设置当前调试的cpu号

           core.cpuwidth          设置cpu的数据宽度

           display.cmd              显示setconfig命令配置的东西

           jtag.showins            当jag状态变化的时候显示指令

【3】set    [regname|regno]    [value]                 读取寄存器

           set                             显示32个通用寄存器的值

           set    pc                     显示当前pc指针的值

           set    regname         读取这个寄存器的值

【4】setenv    [regname|regno]    [value]           设置环境变量

          ejtag向内核传递参数是通过ENV_开头的环境变量来设置的,如:

          setenv    ENV_memsize 256

          setenv    ENV_highmemsize 0

          setenv    ENV_cpuclock 266000000

          来设置内存大小和cpu的时钟

【5】d1-d8,d1q-d8q,m1-m8 分别表示1-8字节dump/modify的意思,相关的命令有

           mems,cp0s,regs,jtagregs,spiroms

          读取cp0_config1:

          cp0s 1

          d8 16 1   也可以cp0s 1 d8 16 1

【5】source file 从fiel 文件中读取指令

【6】loop ecount cmd args..  循环执行count次cmd args这个指令

【7】echo args 打印args

【8】echo_on 回显示执行的命令

【9】verbose [on|off|&fdno|filename]   打开或者关闭debug调试,或者存到fd中

【10】waitreg reg data 等待ejtag 的reg为data

【11】waitface [startaddr]  [endaddr]  等待cpu访问dmseg且地址在这段区间内

【12】goback [addr]    跳转到dmseg addr处

【13】run binfile    运行bin文件,如run gzrom.bin

【14】msleep   n    等待  n ms

【15】shell cmd     执行shell命令

【16】timer n          n ms检查一次ejtag状态,n=0为不检查

【17】b addr          设置软件断点在addr处

【18】unb addr      删除软件断点

【19】hb    addr     设置硬件断点

【20】unhb addr    删除硬件断点

【21】hbls               显示所有的硬件断点

【22】watchls         显示所有的硬件数据断点

【23】s                     单步执行

【24】uns                取消单步执行

【25】cont              退出ejtag模式继续执行

【26】cpu cpuno   切换cpu到cpuno

【27】map filename start [size]    映射文件到dmseg start大小为size dmseg内容写到文件中

【28】unmap fielname start [size]   取消映射文件

【29】memsetx/fmemsetx/smemsetx/   addr   value   size   在处理器上运行memset,其中下x为1,2,4,为字节数

【30】memcpyx/fmemcpyx/smemcpyx addr   value   size   在处理器上运行memcpy

【31】get/fget/sget  filename  addr  size  从板子上下载文件相关配置get.pack_size

【32】putelf/fputelf/sputelf  elffile  上传elf文件

【33】initrd  initrdfile  设置initrd

【34】karg "kernel args"     设置内存参数

【35】disas addr   [count]           反汇编

【36】callbin/fcallbin/scallbin   binfile   [arg0  arg1 ...]           执行bin 文件

【37】call/fcall/scall    addr    [arg0  arg1  ...]      调用函数

【38】erase       擦除整个flash

【39】erase_area  start  end sectorsize    擦除部分flash

【40】gdb elffile   gdb调试elf文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值