Linux ARM交叉编译工具链制作过程

 

一、下载源文件

源代码文件及其版本与下载地址:

Binutils-2.19.tar.bz2

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

gcc-4.4.4.tar.bz2

http://mirrors.kernel.org/gnu/gcc/gcc-4.4.4/

Glibc-2.11.2.tar.bz2

Glibc-ports-2.11.tar.bz2

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

Gmp-4.2.tar.bz2

http://ftp.gnu.org/gnu/gmp/

Mpfr-2.4.0.tar.bz2

http://ftp.gnu.org/gnu/mpfr/

Linux-2.6.29.tar.bz2

Patch-2.6.29.bz2 

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

 

一般一个完整的交叉编译器涉及到多个软件,主要包括binutilsgccglibc等。其中,binutils主要生成一些辅助工具;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具,而glibc主要提供用户程序所需要的一些基本函数库。

 

二、建立工作目录

     编译所用主机型号 FC12.i686

     第一次编译时用的是root用户(第二次用一般用户karen,该用户可以使用sudo指令)

     所有的工作目录都在/home/Karen/cross下面建立完成,首先在/home/karen目录下建立cross目录

 [root@localhost  karen] mkdir cross

进入工作目录:

[root@localhost  root]#cd /home/karen/cross          
 
查看当前目录:

[root@localhost  cross ]# pwd 
/home/karen/cross 

创建工具链文件夹:

[root@localhost  cross]# mkdir embedded-toolchains

在建立了顶层文件夹embedded- toolchains,下面在此文件夹下建立如下几个目录:

Ø  setup-dir存放下载的压缩包;

Ø  src-dir存放binutilsgccglibc解压之后的源文件;

Ø  kernel存放内核文件,对内核的配置和编译工作也在此完成;

Ø  build-dir 编译src-dir下面的源文件,这是GNU推荐的源文件目录与编译目录分离的做法;

Ø  tool-chain交叉编译工具链的安装位;

Ø  program存放编写程序;

Ø  doc说明文档和脚本文件;

    下面建立目录,并拷贝源文件。

[root@localhost  cross] #cd embedded- toolchains
[root@localhost  embedded- toolchains] #
mkdir setup-dir src-dir kernel build-dir tool-chain program doc
[root@localhost  embedded- toolchains] #
ls
build-dir doc kernel program setup-dir src-dir tool-chain
[root@localhost  embedded- toolchains] #cd setup-dir

 拷贝源文件:
这里我们采用直接拷贝源文件的方法,首先应该修改setup-dir的权限

[root@localhost  embedded- toolchains] #chmod 777 setup-dir

然后直接拷贝/home/karen目录下的源文件到setup-dir目录中,如下图:

 

 

 

建立编译目录:

[root@localhost  setup-dir] #cd ../build-dir
[root@localhost  build -dir] #mkdir build-binutils build-gcc build-glibc

三、输出环境变量

输出如下的环境变量方便我们编译。

为简化操作过程。下面就建立shell命令脚本environment-variables
[root@localhost  build -dir] #cd ../doc
[root@localhost  doc] #
mkdir scripts
[root@localhost  doc] #
cd scripts
用编辑器vi编辑环境变量脚本envionment-variables

[root@localhost  scripts] #vi envionment-variables 
export  PRJROOT=/home/mxl/diliuzhang/embedded- toolchains
export  TARGET=arm-linux
export  PREFIX=$PRJROOT/tool-chain
export  TARGET_PREFIX=$PREFIX/$TARGET
export  PATH=$PREFIX/bin:$PATH

截图如下:

 

 

%% Q:为什么用了source ./environment-variables才正常执行,去掉source就没有执行? %%

%%  如果用source 执行, 不需要脚本有执行权限, 权限为664也可以,执行命令如下:%%

%%  Source environment-variables %%

 

说明:

TARGET变量用来定义目标板的类型,以后会根据此目标板的类型来建立工具链。参

看表6-1所示

  • 0
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
s3c2440是一款ARM架构的处理,为了在这种处理上运行我们自己编写的代码,我们需要制作一个适用的交叉工具。 交叉工具是一套用于在一种平台上开发和编译另一种平台上的代码的工具集合。在本例中,我们需要在Windows或Linux主机上开发和编译运行在s3c2440处理上的代码。 制作s3c2440交叉工具的第一步是下载和安装相应的工具集合。通常,ARM架构的交叉编译是GNU工具集合的一部分,例如GCC(GNU编译器集合)。我们可以从官方网站或源代码仓库下载并安装ARM交叉编译。 安装完交叉编译后,我们还需要为s3c2440处理配置编译选项。这些选项包括指定处理架构、操作系统、目标平台等。通过这些选项,编译器会生成适用于s3c2440处理的机代码。 制作s3c2440交叉工具的最后一步是设置环境变量,以便我们可以从命令行中轻松地调用交叉编译。这些环境变量包括将交叉编译所在的目录添加到系统的PATH变量中,并设置一些其他的配置选项。 完成以上步骤后,我们就成功制作了s3c2440交叉工具。现在我们可以在我们的开发主机上开发和编译s3c2440处理上的代码,并将生成的可执行文件运行在s3c2440处理上。 总之,制作s3c2440交叉工具涉及下载和安装适用于ARM架构的交叉编译,配置编译选项,设置环境变量等步骤。这样,我们就能够在Windows或Linux主机上开发和编译适用于s3c2440处理的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值