微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AT91RM9200引导程序的建立(一)建立交叉编译工具链

AT91RM9200引导程序的建立(一)建立交叉编译工具链

时间:11-09 来源:互联网 点击:

本采用3.4.1,glibc版本采用2.3.3。
我们再来看gcc-3.4.1-glibc-2.3.3.dat这个文件

BINUTILS_DIR=binutils-2.15

GCC_DIR=gcc-3.4.1

GLIBC_DIR=glibc-2.3.3

LINUX_DIR=linux-2.6.8

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.3

由于我们采用的是Linux-2.6.17的内核包,所以这里要将linux-2.6.8改成linux-2.6.17。否则,脚本执行解压缩时,找不到linux源代码包。

建立我们的目标生成目录

[zzl@localhost]sudo mkdir /opt/crosstool

[zzl@localhost]sudo chown zzl /opt/crosstool

执行我们的配置文件arm-softfloat.sh

[zzl@localhost]sh demo-arm-softfloat.sh

这里要注意运行该配置文件不能以root来运行,crosstool-0.42, /opt/crosstool为非root用户所有。

如果一切顺利的话,经过一段时间的等待,得到一个新目录:(如果不顺利且始终找不到错误原因的话,我建议你重新安装redhat9.0的操作系统,然后按照先前步骤进行。:))

/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu

交叉编译工具就在该目录的bin/下

[zzl@localhost]ls –l /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/bin

总用量29184

-rwxr-xr-x1 zzlzzl1806212 12月29 09:02 arm-softfloat-linux-gnu-addr2line

-rwxr-xr-x2 zzlzzl1864030 12月29 09:02 arm-softfloat-linux-gnu-ar

-rwxr-xr-x2 zzlzzl3248953 12月29 09:02 arm-softfloat-linux-gnu-as

-rwxr-xr-x2 zzlzzl287996 12月29 09:43 arm-softfloat-linux-gnu-c++

-rwxr-xr-x1 zzlzzl1761855 12月29 09:02 arm-softfloat-linux-gnu-c++filt

-rwxr-xr-x1 zzlzzl287111 12月29 09:43 arm-softfloat-linux-gnu-cpp

-rwxr-xr-x2 zzlzzl287996 12月29 09:43 arm-softfloat-linux-gnu-g++

-rwxr-xr-x2 zzlzzl285852 12月29 09:43 arm-softfloat-linux-gnu-gcc

-rwxr-xr-x2 zzlzzl285852 12月29 09:43 arm-softfloat-linux-gnu-gcc-3.4.1

-rwxr-xr-x1 zzlzzl16241 12月29 09:43 arm-softfloat-linux-gnu-gccbug

-rwxr-xr-x1 zzlzzl103366 12月29 09:43 arm-softfloat-linux-gnu-gcov

-rwxr-xr-x1 zzlzzl2286490 12月29 09:02 arm-softfloat-linux-gnu-gprof

-rwxr-xr-x2 zzlzzl2542659 12月29 09:02 arm-softfloat-linux-gnu-ld

-rwxr-xr-x2 zzlzzl1840205 12月29 09:02 arm-softfloat-linux-gnu-nm

-rwxr-xr-x1 zzlzzl2344807 12月29 09:02 arm-softfloat-linux-gnu-objcopy

-rwxr-xr-x1 zzlzzl2487727 12月29 09:01 arm-softfloat-linux-gnu-objdump

-rwxr-xr-x2 zzlzzl1864029 12月29 09:02 arm-softfloat-linux-gnu-ranlib

-rwxr-xr-x1 zzlzzl384396 12月29 09:02 arm-softfloat-linux-gnu-readelf

-rwxr-xr-x1 zzlzzl1712993 12月29 09:01 arm-softfloat-linux-gnu-size

-rwxr-xr-x1 zzlzzl1689683 12月29 09:02 arm-softfloat-linux-gnu-strings

-rwxr-xr-x2 zzlzzl2344806 12月29 09:02 arm-softfloat-linux-gnu-strip

-rwxrwxr-x1 zzlzzl19084 12月29 09:43 fix-embedded-paths

我们可以看出,交叉编译的所有工具都在这里。

将这个路径加进PATH变量中:

[zzl@localhost]export PATH=$PATH :/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/bin

如果每次都要输入上面的shell命令,的确是比较烦人的事情。我们可以在linux启动脚本中添加该语句。从而避免每次开机后重新输入。我是在启动脚本/etc/profile中添加了环境变量。

找到这一行export PATH USER LOGNAME MAIL HOSTNAME HISTSIZEINPUTRC

在其上面一行添加:

PATH=$PATH :/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/bin

今后我们编译程序的时候,就用arm-softfloat-linux-gnu-gcc来编译我们的程序。

当然,应用程序的调试是开发过程中必不可少的环节之一。Linux下的GNU的调试器即是GDB。所以我们有了这个交叉编译工具链之后,可以用它来编译gdb和gdbserver。如果你暂时不需要GDB的话,也可以先略过这一步。

GDB的编译安装

目前比较新的是版本是GDB6.6。其官方网站是http://www.gnu.org/software/gdb/。

下载gdb-6.6.tar.gz源代码包到/usr/src下。

[root@localhost]tar –zxvf gdb-6.6.tar.gz

[root@localhost]cd gdb-6.6

配置很简单,只需要指定目标板体系结构和安装路径即可。

[root@localhost]mkdir /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/gdb6.6

[root@localhost]./configure--target=arm-softfloat-linux-gnu--prefix=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/gdb6.6 -v

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top