最近工作比较忙,终于用休息时间了,就写点东西吧, 在进入主题之前,我先聊聊欧洲杯意大利对德国的比赛(我不是一个足球迷,有一个朋友是一个足球迷,被他拉着看的),当巴神打进 第二个球时有一个镜头上有个球迷掉下眼泪,我为足球的魅力缩感动,也为这个伟大的运动所感到。
最近在arm板子上做开发,遇到内存问题,本人习惯用emacs中gdb远程调试, 找了半天没有交叉编译工具连上没有找到gdb不知道海思SDK为什么为什么没有所以只好自己手动编译一个了, 想记录下自己编译过程,希望和大家一起分享。
1、下载gdb:
下载地址为:
http://ftp.gnu.org/gnu/gdb/
我们以gdb-7.2.tar.bz2 这个文件为例。
2、解压缩:
tar jxvf gdb-7.2a.tar.bz23、进入该目录:
cd gdb-7.2
4、配置:
./configure --target=arm-linux --program-prefix=arm-linux- --prefix=/home/horst/gdb-build
注:--target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;--program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-gdb,--prefix是指生成的可执行文件安装在哪个目录,这个目录需要根据实际情况作选择。如果该目录不存在,会自动创建,当然,权限足够的话。
5、编译、安装
mak;mak install幸运的话,会在--prefix指定的目录下生成三个子目录:bin、lib、share,我们需要的arm-linux-gdb就在其中的bin目录下。
你可以调用strip将它变小一些,哈哈那就看看你自己了。。。。。
1、在刚才那个gdb解压后的目录:gdb-7.2,进入./gdb/gdbserver子目录
2、配置
$ ./configure --target=arm-linux --host=arm-linux
这里的--host指定了生成可执行文件运行的平台和系统:运行于ARM平台的Linux系统
3、编译
make CC=arm-hisiv100ntp-linux-gcc
make可能出错,可以将生成的config.h文件中
#define HAVE_SYS_REG_H 1注释掉就行了
$ arm-hisiv100ntp-linux-strip gdbserver -o gdbserver-stripped $ ls -lh | grep gdbserver任务完成你就可以工作了