主题 : gdb怎么进入调试环境啊? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 78112
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-09-15
最后登录: 2012-09-23
楼主  发表于: 2012-09-16 17:54

 gdb怎么进入调试环境啊?

我项目由head.S    init.c    nand.c    main.c     Makefile     nand.lds  这六个文件组成,现在我想用GDB调试,但是不知道怎么进入调试环境,各位有没有知道怎么搞?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-09-16 18:53

 回 楼主(244329722) 的帖子

你的调试环境是什么样的?
对于这种裸机程序,通常你需要一个ICE,比如OpenJTAG, J-Link, 作为后端来支持GDB。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 78112
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-09-15
最后登录: 2012-09-23
2楼  发表于: 2012-09-16 20:15

 Re:回 楼主(244329722) 的帖子

引用第1楼kasim于2012-09-16 18:53发表的 回 楼主(244329722) 的帖子 :
你的调试环境是什么样的?
对于这种裸机程序,通常你需要一个ICE,比如OpenJTAG, J-Link, 作为后端来支持GDB。



谢谢斑竹的关注,我想把nandflash 4K以后的代码放到sdram中执行,想知道4K以后的代码在SDRAM中执行过程中的变量状态,我有H-JTAG,
1,我试过在MDK中做失败了,原因是我在linux环境下用GCC编译过的head.s在codewarrior中编译错误,让我费解并且不知道怎么将这些文件在MDK中连接起来。
2,如果对于这种裸机程序在linux中该如何调试,能具体说说吗?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2012-09-16 22:11

 回 2楼(244329722) 的帖子

抱歉,我没有用过MDK。不过通常来说,针对GCC编写的裸机程序在MDK或ADS这样的环境下不做修改是无法编译,因为两者的汇编伪指令定义不同。
准确的说,这种裸机程序可以理解为是一种Linux的bootloader。关于bootloader的调试环境的概念,下面两篇文章有很好的介绍:
http://read.pudn.com/downloads113/doc/474524/%E5%BB%89%E4%BB%B7Bootloader%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83.pdf
http://superguang.blog.51cto.com/934897/208969

对于mini2440 + H-Jtag,可以参考下面的帖子搭建调试环境(H-Jtag + OpenOCD + GDB)
http://www.aiothome.net/read.php?tid-1919.html
[ 此帖被kasim在2012-09-16 23:26重新编辑 ]
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."