首页>>论坛 >>技术论坛 >>顶嵌——嵌入式Linux >>嵌入式Linux应用开发
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

构建ARM平台的交叉工具链第一部分

版主: 顶嵌 
构建ARM平台的交叉工具链第一部分
 

构建ARM平台的交叉工具链

Crosstool是由美国人Dan Kegel(毕业于加(利福尼亚)州工学院)开发的一套可以自动编译不同匹配版本gcc和glibc,并作测试的脚本程序。Crosstool最初是为嵌入式系统开发者创建,但也适用于主流开发者比如只是希望他们去快速编译或需要建立程序,运行在旧版本的Linux操作系统(例如Red Hat的6.2 )。Crosstool是一种便携式的shell脚本。你可以使用它来建立Linux系统配置的编译器是运行在Linux , Mac OS X操作系统, Solaris和Cygwin等。它支持的硬件平台有:alpha, arm, i686, ia64, mips, powerpc, powerpc64, sh4, sparc, sparc64, s390, x86_64等。

在实践之前,我们需要回答这样的问题,为什么要使用交叉编译器?主要原因是嵌入式硬件(目标机)的性能一般都无法满足开发环境的要求,比如主频比较低、内存少、没有硬盘(常用FLASH作为存储设备)、没有大型显示设备、没有全键盘等。交叉编器通常是采用PC(x86)作为主机来搭建开发环境进行编译,但编译出的软件能够在特定CPU体系架构的目标设备(比如ARM设备)上运行的一套编译工具。

下面将以具体操作步骤来讲述Crosstool构建针对ARM平台的交叉编译器。注:该实验是基于Fedora 10操作系统下进行,其他Linux发行版可能会有所不同。

1.准备资源文件

软件包名称

下载站点

crosstool-0.43.tar.gz

http://kegel.com/crosstool/crosstool-0.43.tar.gz

binutils-2.15.tar.bz2

http://ftp.gnu.org/gnu/binutils/

gcc-3.4.5.tar.bz2

http://ftp.gnu.org/gnu/gcc

glibc-2.3.6.tar.bz2

http://ftp.gnu.org/gnu/glibc

glibc-linuxthreads-2.3.6.tar.bz2

http://ftp.gnu.org/gnu/glibc

linux-2.6.28.2.tar.bz2

http://ftp.kernel.org/pub/linux/kernel/v2.6/

linux-libc-headers-2.6.12.0.tar.bz2

http://ep09.pld-linux.org/~mmazur/linux-libc-headers/

首先从网上下载上述资源文件:binutils-2.15.tar.bz2gcc-3.4.5.tar.bz2,glibc-2.3.6.tar.bz2 glibc-linuxthreads-2.3.6.tar.bz2linux-2.6.28.2.tar.bz2linux-libc-headers-2.6.12.0.tar.bz2。然后将这些工具包文件放在开放主机的/home/mike/downloads目录(该目录根据个人使用习惯不同可修改)下,最后在/home/mike目录下解压crosstool-0.43.tar.gz,命令如下:

# cd /home/mike

# tar xvzf crosstool-0.43.tar.gz

2建立脚本文件

接着需要建立自己的编译脚本,起名为arm.sh,为了简化编写arm.sh,寻找一个最接近的脚本文件demo-arm.sh作为模版,然后将该脚本的内容复制到arm.sh,修改arm.sh脚本,具体操作如下:

# cd crosstool-0.43

# cp demo-arm.sh arm.sh

# vi arm.sh

修改后的arm.sh的脚本内容如下:

#!/bin/sh

set -ex

TARBALLS_DIR=/home/mike/downloads  # 定义工具链源码所存放位置。

RESULT_TOP=/opt/crosstool        # 定义工具链的安装目录

export TARBALLS_DIR RESULT_TOP

GCC_LANGUAGES="c,c++"     # 定义支持C, C++语言

export GCC_LANGUAGES

创建/opt/crosstool目录

mkdir -p $RESULT_TOP

# 编译工具链,该过程需要数小时完成。

eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat`  sh all.sh --notest

echo Done.

3 建立配置文件

在arm.sh脚本文件中需要注意arm.dat

 
相关主题
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1