【转】 交叉编译arm gdb

原文:http://blog.chinaunix.net/uid-21977330-id-3761022.html

1. 安装依赖文件

sudo apt-get install texinfo 
sudo apt-get install libncurses5-dev 
sudo apt-get install m4
sudo apt-get install flex 
sudo apt-get install bison
为了支持python脚本扩展功能
apt-get install python-dev

确定XML support 是否使能,如果libexpat-dev被安装是默认是能的,
如果不支持XML, openocd->gdb  memory map transfer 不能够工作

2. 编译gdb for arm

# It‘s actually quite straightforward:
wget http://ftp.gnu.org/gnu/gdb/gdb-7.0.1a.tar.bz2
tar jvxf gdb-7.2.tar.bz2
cd gdb-7.2
./configure --target=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi-  --prefix=/home/enzo --with-python
其中:
--target i指明目标系统类型
--prefix 指生成的可执行文件安装在哪个目录
--program-prefix  指生成的可执行文件的前缀

make
幸运的话,会在--prefix指定的目录下生成三个子目录:bin、lib、share,我们需要的arm-none-linux-gnueabi-gdb就在其中的bin目录下。

进入gdb目录,对生成的elf文件进行strip,不然又12M左右
strip gdb -o arm-none-linux-gnueabi-gdb
裁剪后大小
-rwxr-xr-x 1 root root 2.7M  6月  9 21:14 arm-none-linux-gnueabi-gdb
拷贝arm-none-linux-gnueabi-gdb 到目标位置即可

3. 编译gdbserver
cd gdb/gdbservver
CC=arm-hisiv100nptl-linux-gcc ./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux
这里的--host指定了生成可执行文件运行的平台和系统:运行于ARM平台的Linux系统
make
检查生成的gdbserver
$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

4. 去除符号信息
$ arm-hisiv100nptl-linux-strip gdbserver -o gdbserver
[email protected]:~/Downloads/gdb-7.3.1/gdb/gdbserver$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped

可能出现的错误:
xml-builtin.o: could not read symbols: File in wrong format
出现此错误原因: 没有指定交叉编译器
./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux

自己的开发板,

./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi- --prefix=/home/ljl/gdb

make install前先sudo -i,然后设置下环境变量,否则找不到编译器

时间: 2024-08-02 10:51:17

【转】 交叉编译arm gdb的相关文章

linux cross toolsChain 交叉编译 ARM(转)

转载请注明出处:http://blog.csdn.net/mybelief321/article/details/9076583 安装环境 Linux版本:Ubuntu 12.04    内核版本:Linux 3.5.0   交叉编译器版本:arm-linux-gcc-4.4.3 这个版本的交叉编译器我已经上传到了资源上,可以随便下载,点此下载 安装前的絮叨 首先简单介绍一下,所谓的搭建交叉编译环境,即安装.配置交叉编译工具链.在该环境下编译出嵌入式Linux系统所需的操作系统.应用程序等,然后

QT交叉编译 ARM 版本

Qt4.8.5 为了支持开发板中的触摸屏,在编译 Qt 之前,要先编译 tslib 库. [email protected]:~# sudo gedit /etc/bash.bashrc IMX28环境变量做如下设置: export ARCH=arm export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-no ne-linux-

ubuntu 交叉编译arm linux 内核小例子

下载arm-linux-gcc 4.2.3http://code.google.com/p/princess-alist/downloads/detail?name=arm-linux-gcc-4.3.2.tgz&can=2&q= 安装arm-linux-gcc 4.2.3sudo tar  xvzf arm-linux-gcc-4.3.2.tar.gz  -C / 此时将安装到/usr/local/arm下面 设置环境变量 gedit ~/.profile在打开的文件最后加入以下命令ex

嵌入式arm linux环境中gdb+gdbserver调试

一.前言嵌入式Linux系统中,应用开发过程中,很多情况下,用户需要对一个应用程序进行反复调试,特别是复杂的程序.采用GDB方法调试,由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试. Gdbserver在目标系统中运行,gdb则在宿主机上运行.目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序.在此我们还不能直接采用linux发行版自带的gdb,需要交叉编译gdb和gdbserver. 二.编译gdb和gdbserve

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gneabihf-gcc等. 前言 这里有一个专门的说法: “arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使

ARM交叉编译工具链分类说明

转载整理自:http://www.veryarm.com/cross-tools 从授权上,ARM交叉编译工具链分为免费授权版和付费授权版. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是 Codesourcery,第三是Linora. 收费版有ARM原厂提供的armcc.IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述. ·        arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目

【转】ARM交叉编译工具链

原文网址:http://www.veryarm.com/cross-tools 为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统. 交叉编译工具链是一个由编译器.连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils.gc

使用GDB在ARM上进行开发调试

一.安装GDB及GDB server 1.1 GDB简介 GDB调试环境由宿主机GDB和目标开发板的GDB server共同构成,两者通过串口或TCP连接.使用GDB标准串行协议协同工作,实现对目标机的系统内核和上层应用的监控和调试功能. GdbServer是GDB的一个组件,但通常不随发行版本的GDB一同发布,需要用户自行编译GDB的源代码包得到相应的GDB和GDBServer,可以从下载地址:http://ftp.gnu.org/gnu/gdb/,或者百度获取下载地址. 1.2 安装GDB

在Ubuntu下安装imx6linux系统的交叉编译环境遇到的问题总结

这段时间一直忙于手上的嵌入式项目,可以说自己从嵌入式的菜鸟一点点的入门了,关于嵌入式和imx6核心板的开发有了一点的了解,尤其是对于板子环境的搭建.硬件的开发,搭建环境,是一个很大的工程量,也是很重要的一步,环境没有搭好就无法进行下一步.当然这个前提是对项目所使用的硬件有一定的了解.对于嵌入式开发,项目进行到现在,从一个什么都不懂的到现在可以和大家讨论v4l2,framebuffer,讨论linux的视频开发,虽然还是菜鸟级别的,但这个月确实让自己掌握了一们知识. 关于嵌入式的开发,网上有很多的