主题 : 用eclipse和JLINK调试gcc下的程序 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 62388
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2012-01-28
最后登录: 2013-07-14
楼主  发表于: 2012-02-19 21:11

 用eclipse和JLINK调试gcc下的程序

最近一直想调试U-BOOT,可是那是在GCC下编译得到的,没法用axd单步调试,百度了很久终于找到了在eclipse下可以调试。今天把它写成心得发上来。
本人水平有限,主要参考的是www.aiothome.com  里面的UBOOT专区里面的前辈们的文章,有兴趣的同学可以去那看看。(真心感觉友善的论坛真不错)
首先要下载eclipse,最好是带cdt的版本;//
然后在线安装Zylin插件;//http://opensource.zylin.com/zylincdt
然后安装 yagarto-bu-2.20.1_gcc-4.5.1-c-gdb-7.1_eabi    http://www.yagarto.de/#download
安装好之后,它是自动将C:\Program Files\yagarto\bin添加到环境变量中的,所以可以直接使用下面的工具

 
 
环境搭建好之后就开始调试
 
打开eclipse新建一个c工程,命名为beep,(我写的一个蜂鸣器程序),选择Makefile Project中的Empty Project ,左边选择Other toolchain,点击finish

然后import 选项中的FileSystem,把你写的*.S *.c *.lds makefile等一套文件都添加进来

 

然后将makefile中的arm-linux-gcc改成arm-none-eabi-gcc,其余的几个LD OBJDUMP 等都改成arm-none-eabi-,因为环境变量里是arm-none-eabi-的了。在gcc的里面要加上-g,不然会can’t find the soursefile的。

然后编译一下,就可以看到我们熟悉可爱的*.bin elf格式的start文件了。注意,这里的lds文件我写的是0x50008000,开始的,好像在0x00000000中调试不起来,(只能在内存中调试,求高手解决这个问题)。
然后点击Debug选项中的Debug Configurations选项进行仿真,前提是你要打开J-Link GDB Server。(推荐使用jlink v4.10i版本)

选择Zylin Native来仿真,在main选项卡里设置成如下图所示

Debugger选向卡里设置成如下图所示,(前提是你要有main函数)
command选项卡里‘Initialize’中填入如下内容:
target remote localhost:2331
monitor reset 0                
monitor halt
load
然后按debug就可以仿真了。这时就可以单步仿真了。
当然你按照我说的一步步做,如果一次成功,那么恭喜你,如果有问题,也不要慌,慢慢找原因,因为这也是一种学习的过程。我写这个文章的时候调试UBOOT还没有成功呢,继续找原因,有高手成功的请不吝赐教。(因为uboot好像不能通过此法来编译,一编译错误一大堆,只能将gcc下编译好的elf格式的u-boot拿过来直接调试)

原来的word和一个简单的测试程序在file.rar中
[ 此帖被wh_1988在2012-02-19 22:35重新编辑 ]
附件设置隐藏,需要回复后才能看到
虚心使人进步
级别: 新手上路
UID: 62388
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2012-01-28
最后登录: 2013-07-14
1楼  发表于: 2012-02-19 21:12
第一次发文章,怎么图都不见了,要看图的朋友请下载file.rar
虚心使人进步
级别: 新手上路
UID: 59321
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2011-11-22
最后登录: 2012-03-14
2楼  发表于: 2012-02-22 20:43
顶起!
级别: 侠客
UID: 27691
精华: 0
发帖: 88
金钱: 450 两
威望: 90 点
贡献值: 0 点
综合积分: 176 分
注册时间: 2010-08-30
最后登录: 2014-01-14
3楼  发表于: 2012-02-23 15:52
用eclipse和JLINK调试gcc下的程序,MARK!!
级别: 新手上路
UID: 8302
精华: 0
发帖: 33
金钱: 165 两
威望: 33 点
贡献值: 0 点
综合积分: 66 分
注册时间: 2009-08-18
最后登录: 2013-07-09
4楼  发表于: 2012-02-27 21:22
MARK
级别: 新手上路
UID: 47431
精华: 0
发帖: 18
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2011-05-22
最后登录: 2012-06-14
5楼  发表于: 2012-02-29 17:29
用eclipse和JLINK调试gcc下的程序,MARK!!
级别: 侠客
UID: 35785
精华: 0
发帖: 63
金钱: 325 两
威望: 65 点
贡献值: 0 点
综合积分: 126 分
注册时间: 2011-01-06
最后登录: 2014-07-22
6楼  发表于: 2012-03-12 09:24
mark,1024
级别: 新手上路
UID: 65348
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2012-03-17
最后登录: 2017-09-13
7楼  发表于: 2012-03-17 15:48
多谢分享
级别: 新手上路
UID: 63278
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
贡献值: 0 点
综合积分: 84 分
注册时间: 2012-02-17
最后登录: 2013-09-06
8楼  发表于: 2012-03-20 23:10
good
级别: 新手上路
UID: 65703
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2012-03-21
最后登录: 2017-09-13
9楼  发表于: 2012-03-21 20:56
这两个一样吗?