linux下面arm实验调试过程ARM板上的应用程序的方法有哪些?

1557人阅读
ARM Linux 交叉调试工具及方法
一、交叉调试工具
1、主机 : arm-linux-gdb
2、 arm: gdbserver
在开发主机上运行 arm-linux-gdb 程序,可以通过串口或网口与驻留在 ARM 开发板上的 gdbserver
程序进行通信,完成 ARM 开发板上应用程序的调试和跟踪。
二、交叉调试工具的生成
1、下载 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-
编译,命令如下:
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
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27336次
排名:千里之外
原创:10篇
(4)(3)(2)(1)(1)(3)(4)ARM Linux开机后自动运行特定程序的方法
ARM Linux开机后自动运行特定程序的方法,阅读ARM Linux开机后自动运行特定程序的方法,开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进
   
开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令,增加运行用户应用程序的命令,达到开机自动运行用户应用程序的目的。
下面以我做的实验为例,描述具体的实现步骤。该方法源于网络,我加以验证,稍做修改,此文相当于转载。
1.进入pc机的Linux 操作系统,在/nfs/usr/下通过mkdir lz 命令新建一个名为lz的文件夹,进入lz文件夹,通过mkdir hello新建一个hello文件夹用来存放我们将要编写的hello.c文件和编译生成的可执行文件。
2.在/nfs/usr/lz/hello下通过vi hello.c命令新建hello.c文件,编辑如下测试程序:
int main(){
printf("Hello,test arm-linux!\n");
完成编辑后通过:wq保存后退出。
3.主机通过如下命令交叉编译环境编译hello.c:
#arm-linux-gcc Co hello hello.c
4.通过ls 命令可以看到在/nfs/usr/lz/hello/下已经生成了hello可执行文件,我们可以在开发板上通过./hello来测试自己编写的hello.c执行情况
5.修改rc.local文件,在文件的最后通过‘#’释掉启动图形界面的指令,增加执行用户应用程序hello的指令,具体实现如下:
#export PATH=$QPEDIR/bin:$PATH
#/usr/qtopia/bin/qtopia
/usr/lz/hello/./hello
注:前三行是注释掉启动图形界面,最后一行是添加的执行用户的hello测试程序。
6.重启开发板,通过vivi参数配置让开发板通过nfs挂载主机上的文件系统,这时我们就可以通过超级终端看到开发板已经运行了我们编写的hello程序。
(责任编辑:)
本文关键字:
广告赞助商
最新视频推荐
Copyright (C) 2007-, All Rights Reserved 版权所有 . 沪ICP备号
地址:上海徐汇区零陵路585号 爱邦大厦26H座
传真(FAX):021-
电话(Tel):021-
PHP100 Website Powered by PHPCMS. For PHP100. 服务器维护:阿里巴巴-阿里云

我要回帖

更多关于 linux调试工具 的文章

 

随机推荐