您的位置:首页 > 运维架构 > Linux

ubuntu下arm-linux-gdb+JLinkGDBServer调试TQ2440

2015-04-11 15:22 525 查看
之前一直是Jlink烧写到Nand Flash中,但因为遇到问题,所以想要用一下D版Jlink的调试功能。

其实一开始还是满担心的,到底有没有调试功能啊,不过最终还是证明社会主义好!

网上有用insight和Eclipse调试的。insight,太丑(其实是因为我懒),Eclipse在我的VM ubuntu里打开,巨慢无比。

而且某种角度来说Eclipse也是用arm-linux-gdb(一下简称gdb),而且设置还据麻烦。所以干脆好好研究一下gdb调试

首先安装gdb(省略)

安装Jlink(省略)

一个中断打开JLinkGDBServer

另一个打开gdb

gdb arm-linux-gdb file.e
4000
fl
……
target remote localhost:2331<span style="white-space:pre"> </span>// 连接板子
b _start
load<span style="white-space:pre"> </span>//烧写进去了<span style="white-space:pre"> </span>
c
问题来了,板子无法运行下去。

感谢lanser,他提供了解决办法。

原来gdb把程序复制到0x30000000(makefile里写着)同时把pc也设置到了这个位置。

当然这里的0x0处的程序并不是file的2进制表示,程序开始后2440会自动把nand内的程序复制进来。

(gdb) i registers
r0 0xfff9ffff 4294574079
r1 0xffffbeff 4294950655
r2 0x56000014 1442840596
r3 0x56000014 1442840596
r4 0xffffefff 4294963199
r5 0xedffbfbf 3992960959
r6 0xfefeffff 4278124543
r7 0xd6fdffff 3606970367
r8 0xfdffffef 4261412847
r9 0xffffffff 4294967295
r10 0xfffffdfe 4294966782
r11 0xffc 4092
r12 0xfffbfffb 4294705147
sp 0xff0 0xff0
lr 0x8 8
pc 0x30000000 0x30000000 <_start>
cpsr 0x200000d3 536871123
(gdb) x/16xw 0
0x0: 0xe3a0da01 0xeb000005 0xeafffffe 0xe52db004
0x10: 0xe28db000 0xe28bd000 0xe8bd0800 0xe12fff1e
0x20: 0xe52db004 0xe28db000 0xe24dd00c 0xe3a02456
0x30: 0xe2822010 0xe3a03456 0xe2833010 0xe5933000


我们只需要设置pc寄存器指向0处即可
set $pc=0记下来continue 就可以了。

参考:http://my.oschina.net/u/1246604/blog/191991
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JLink arm-linux-gdb