arm-gdb移植(编译)
来源:互联网 发布:在vb集成开发环境中 编辑:程序博客网 时间:2024/04/30 20:44
调试应用程序的时候最好有调试工具类似于PC机上的GDB和DDD。写这篇文章的原因也是想要调试应用程序,所以决心自己作一次开发板上GDB的移植。
网上相关的文档很多。也很精辟,在这里做一个汇总,以备后用。
GDB移植:
GDB移植其实分为两种,两种方法的的区分是鉴于使用和编译后的工具而言。
1,第一种是 开发板上使用ARM版的GDB,就像PC机上使用GDB。
2,第二种是 开发板上使用ARM版的GDB Client,PC机上使用PC版本GDB Server。两者通过网络来交互信息实现调试。
不管哪种方式来调试,首先要做的总是要实现编译工具。网上很多的资料其实都介绍了如何编译GDB,以及在编译过程中遇到的问题。
本文主要介绍第一种GDB的编译以及调试的方法。
OS :UBUNTU 10.04
CrossTools :arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar
编译:
1,下载termcap-1.3.1.tar.gz
网上可以搜索到这个压缩包的位置,在ftp://ftp.gnu.org/gnu/termcap/
可以使用IE登录一下发现这个文件还真是很久以前的。
03/13/2002 12:00ÉÏÎç 439,416 termcap-1.3.1.tar.gz
08/17/1995 12:00ÉÏÎç 288,760 termcap-1.3.tar.gz
这里使用wget命令:
wget ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
2,下载gdb-7.5.tar.bz2
下载地址:http://ftp.gnu.org/gnu/gdb/
gdb-7.5.tar.bz2 17-Aug-2012 13:58 20M
3,编译
(1)编译termcap如果没有这个lib,如果没有这个libtermcap.a则在编译gdb时候会报错:
make[1]: *** [configure-gdb] Error 1
configure: error: no termcap library foundmake[1]: *** [configure-gdb] Error 1
解压termcap包,进入termcap包以后使用/configure命令:
./configure --target=arm-none-linux-gnueabi --prefix=/opt/termcap
make & make install
第一次编译的时候没有注意Makefile中的内容,在config之后发现了gcc还是gcc没有变为
arm-none-linux-gnueabi-gcc
arm-none-linux-gnueabi-ar
arm-none-linux-gnueabi-ranlib
之后第二次编译时候,手动修改Makefile后,再编译。prefix路径中有了lib include info等文件夹。在lib文件夹中得到了编译的libtermcap.a文件。
有了这个a文件后copy这个文件到交叉编译的工具使用的lib中。网上介绍了一些XXXXXXX-linux-gcc -print-file-name libc.a。在2009的交叉编译工具上使用后发现失败。
应该arm-none-linux-gnueabi-gcc -print-file-name=libc.a。在=后面直接加上绝对路径。这个路径可以使用find –name libc.a
发现在三个文件路劲下都有这个文件:
arm-none-linux-gnueabi/libc/armv4t/usr/lib/
arm-none-linux-gnueabi/libc/usr/lib/
arm-none-linux-gnueabi/libc/thumb2/usr/lib/
把编译好的libtermcap.a分别拷贝到以上三个路径中。不知道交叉的编译器到底是使用的那个lib,顾全部拷贝一次。
(2)编译gdb,在编译gdb时候关键是configure的配置脚本。
网上可以查到很多资料
--enable-shared 动态编译
--host= 用arm-none-linux-gnueabi-gcc编译
--prefix= 安装目录
--without-x 取消x windows支持
--disable-gdbtk 取消gdbtk,应该也是图形界面相关的
--disable-tui 取消tui界面
--without-included-regex 关闭正则表达式库
--without-included-gettext 去掉用于多语言处理的 gettext库正则表达式/gettext,暂时不需要,先去掉
./configure --host=arm-none-linux-gnueabi --enable-shared --prefix=/output/arm --without-x --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext LDFLAGS="=L /opt/ termcap/lib"
CPPFLAGS="-I /opt/ termcap/include"
LDFLAGS 和 CPPFLAGS可以不要,应为在交叉编译使用的lib中已经包含了libtermcap库。
随后make & make install,在prefix制定的目录下可以找到想要的文件以及文件夹:
Bin include lib share
编译结束,等待上板子调试。
- arm-gdb移植(编译)
- ARM平台移植GDB
- gdb 交叉编译arm
- 编译arm-linux-gdb
- 编译arm-linux-gdb
- 编译 ARM GDB
- ARM GDB交叉编译
- 交叉编译arm gdb
- arm-linux的gdb移植
- arm-linux的gdb移植
- arm-linux的gdb移植
- arm-linux的gdb移植
- arm-linux的gdb移植
- arm-linux的gdb移植
- netperf2 arm 移植(1:编译)
- 编译 ARM 上的 GDB
- arm平台gdb移植实践笔记
- [转]gdb移植到arm开发板
- Windows下搭建Git服务器
- myeclipse优化
- iframe 父窗口和子窗口相互的调用方法集锦 .
- 一个矩形块中有多少个正方形
- 在线班级通讯录项目源码
- arm-gdb移植(编译)
- C++ 智能指针详解
- Hibernate+Spring+Struts2整合开发中的一个分页显示方案
- 开启wordpress的注册功能
- 一步步DIY: OSM-Web服务器(八) 使用 C FCGI 返回瓦片并登记下载
- poj1703
- 项目经理是否需要技术?项目管理与技术哪个重要?
- 转载一个C# .Net专家连接
- ibatis实现一对一关联查询中映射文件的注意事项