ARM Linux 交叉调试工具及方法

一、交叉调试工具

1、主机 : arm-linux-gdb

2、 arm: gdbserver

在开发主机上运行 arm-linux-gdb 程序,可以通过串口或网口与驻留在 ARM 开发板上的 gdbserver
程序进行通信,完成 ARM 开发板上应用程序的调试和跟踪。

二、交叉调试工具的生成

1、下载 gdb 源码

要完成交叉调试需要以上两个工具,在 http://ftp.gnu.org/gnu/gdb/下载 gdb 源码,再进行配置和编
译即可获得以上两个工具软件。
gdb 源码的版本为: gdb-6.8
源码包名称: gdb-6.8a.tar.bz2

2、编译环境

开发主机系统: ubuntu11.10
开发主机 gcc 版本: 4.4.6
交叉编译器版本: 4.5.1

三、配置和编译

1、解压源码

首先进入 gdb-6.8a.tar.bz2 所在的目录,解压后会在当前目录生成新的源码目录: gdb-6.8,在 shell
下输入以下命令 (红色为命令 )。
bill@bill-zhang:~/Downloads$tar -xvf gdb-6.8a.tar.bz2

2、进入源码目录

进入 gdb-6.8 目录,命令如下:
bill@bill-zhang:~/Downloads$ cd gdb-6.8
bill@bill-zhang:~/Downloads/gdb-6.8$
创建目标文件目录,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$ mkdir output

3、编译 arm-linux-gdb

在源码目录下进行配置,配置完成后会在当前目录和 gdb 目录下生成 Makefile 文件,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$./configure --target=arm-linux --enable-shared
--prefix=/home/bill/Downloads/gdb-6.8/output/x86 --without-x --disable-gdbtk --without-
included-regex --without-include-gettext
编译,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$ make
编译过程中会出错,信息如下:
cc1: warnings being treated as errors
.././gdb/cli/cli-cmds.c: In function ‘pwd_command’:
.././gdb/cli/cli-cmds.c:323: error: ignoring return value of ‘getcwd’, declared with attribute
warn_unused_result
make[2]: *** [cli-cmds.o] Error 1
make[2]: Leaving directory `/home/bill/Downloads/gdb-6.8/gdb'
make[1]: *** [all-gdb] Error 2
make[1]: Leaving directory `/home/bill/Downloads/gdb-6.8'
make: *** [all] Error 2
经过对以上信息分析可知,编译时把告警按错误看待,所以编译失败。解决办法是修改 gdb-6.8/gdb
目录下的 Makefile 的第 145 行,即注释调” -Werror“即可
#WERROR_CFLAGS = -Werror
WERROR_CFLAGS =
安装,目标文件会安装在 /home/bill/Downloads/gdb-6.8/output/x86 目录下,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$ make install

4、编译 gdbserver

进入 gdbserver 目录,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$ make gdb/gdbserver
进行配置,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8$./configure --host=arm-linux
--prefix=/home/bill/Downloads/gdb-6.8/output/arm --without-include-regex --without-included-
gettext
编译,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8/gdb/gdbserver$make
安装,目标文件 gdbserver 会安装在 /home/bill/Downloads/gdb-6.8/output/arm 目录下,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8/gdb/gdbserver$make install
gdbserver 进行瘦身,命令如下:
bill@bill-zhang:~/Downloads/gdb-6.8/gdb/gdbserver$arm-linux-strip /home/bill/Downloads/gdb-
6.8/output/arm/gdbserver

四、测试

以调试测试例程为例:
源文件: test.c
编译目标可执行文件: gcc -g -o test test.c,注意一定要加上” -g“,否则不能进行调试。

1、目标板上操作

将生成的 test 文件和 gdbserver 下载到 ARM 开发板上,在开发板的 Shell 上输入:
#./gdbserver 192.168.1.100:2345 test
其中 192.168.1.100 为开发机的 IP 地址

2、开发机上操作

bill@bill-zhang:~/Downloads/gdb-6.8/gdb/output/x86$./arm-linux-gdb test
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...
(no debugging symbols found)
(gdb)target remote 192.168.1.5:2345
其中 192.168.1.5 为开发板的 IP 地址
连接上后开发板的串口上会出现以下打印:
Remote debuging from host 192.168.1.100
(gdb)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值