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

之前一直是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.efl
……
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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值