AT91RM9200引导程序的建立(一)建立交叉编译工具链
本采用
我们再来看gcc-3.4.1-glibc-2.3.3.dat这个文件
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-
GLIBC_DIR=glibc-
LINUX_DIR=linux-
GLIBCTHREADS_FILENAME=glibc-linuxthreads-
由于我们采用的是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-
交叉编译工具就在该目录的bin/下
[zzl@localhost]ls –l /opt/crosstool/gcc-
总用量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-
-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-
如果每次都要输入上面的shell命令,的确是比较烦人的事情。我们可以在linux启动脚本中添加该语句。从而避免每次开机后重新输入。我是在启动脚本/etc/profile中添加了环境变量。
找到这一行export PATH USER LOGNAME MAIL HOSTNAME HISTSIZEINPUTRC
在其上面一行添加:
PATH=$PATH :/opt/crosstool/gcc-
今后我们编译程序的时候,就用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-
[root@localhost]./configure--target=arm-softfloat-linux-gnu--prefix=/opt/crosstool/gcc-
AT91RM9200引导程序交叉编译工具 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)