首页 核心课程 师资团队 就业实训 企业培训 承接项目 技术文章 在线学习 我要报名 关于我们 “顶嵌杯”专题
构建ARM平台的交叉工具链第二部分
北京顶嵌嵌入式培训机构   2009-09-07 15:07:59 作者:mike lee 来源:顶嵌技术部 文字大小:[][][]
构建ARM平台的交叉工具链第二部分

 

解决办法:

[root@localhost crosstool-0.43]# su mike      //切换到普通用户mike

[mike@localhost crosstool-0.43]$ ./arm.sh

+ TARBALLS_DIR=/home/mike/downloads

+ RESULT_TOP=/opt/crosstool

+ export TARBALLS_DIR RESULT_TOP

+ GCC_LANGUAGES=c,c++

+ export GCC_LANGUAGES

+ mkdir -p /opt/crosstool

++ cat arm.dat gcc-3.4.5-glibc-2.3.6.dat

+ eval 'KERNELCONFIG=`pwd`/arm.config' TARGET=arm-linux 'TARGET_CFLAGS="-O"' BINUTILS_DIR=binutils-2.15 GCC_DIR=gcc-3.4.5 GLIBC_DIR=glibc-2.3.6 LINUX_DIR=linux-2.6.28.2 LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 sh all.sh --notest

+++ pwd

++ KERNELCONFIG=/home/mike/crosstool-0.43/arm.config

++ TARGET=arm-linux

++ TARGET_CFLAGS=-O

++ BINUTILS_DIR=binutils-2.15

++ GCC_DIR=gcc-3.4.5

++ GLIBC_DIR=glibc-2.3.6

++ LINUX_DIR=linux-2.6.28.2

++ LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

++ GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

++ sh all.sh --notest

You set both LINUX_DIR and LINUX_SANITIZED_HEADER_DIR - ignoring LINUX_DIR for the build

DEJAGNU not set, so not running any regression tests

GCC_EXTRA_CONFIG not set, so not passing any extra options to gcc's configure script

GLIBC_ADDON_OPTIONS not set, so building all glibc add-on's

+ TOOLCOMBO=gcc-3.4.5-glibc-2.3.6

++ pwd

+ BUILD_DIR=/home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

++ pwd

+ TOP_DIR=/home/mike/crosstool-0.43

+ test -z ''

+ SRC_DIR=/home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

+ echo 'SRC_DIR not set, so source tarballs will be unpacked in the build directory'

SRC_DIR not set, so source tarballs will be unpacked in the build directory

+ test -w /tmp

+ TARBALLS_DIR=/home/mike/downloads

+ RESULT_TOP=/opt/crosstool

+ PREFIX=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux

+ export TOOLCOMBO

+ export PREFIX

+ export BUILD_DIR

+ export SRC_DIR

+ export TARBALLS_DIR

+ export TOP_DIR

+ '[' 1 -gt 0 ']'

+ opt_no_test=1

+ shift

+ '[' 0 -gt 0 ']'

+ test '' = 1

+ test '' = ''

+ test '' = 1

+ test -d /home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

+ mkdir -p /home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

mkdir: cannot create directory `/home/mike/crosstool-0.43/build': Permission denied

[mike@localhost crosstool-0.43]$ su 

Password: 

[root@localhost crosstool-0.43]# ./arm.sh  

问题二:S3C2440芯片没有硬件浮点数(hardfloat),很多软件只能采用软件浮点数(softfloat)的编译器编译,恰巧现在高版本的u-boot只能采用支持softfloat的交叉编译器编译,否则会在编译结束前的链接那一步出现不支持softfloat的错误

解决办法:要解决这个错误的唯一办法就是采用支持softfloat的交叉编译器编译uboot。下面来说一下制作softfloat的具体过程。

和上述制作交叉编译器过程一样,不同之处:1.修改arm.dat内容如下,参考arm-softfloat.dat内容修改。

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-softfloat-linux

TARGET_CFLAGS="-O"

GCC_EXTRA_CONFIG="--with-float=soft"

GLIBC_EXTRA_CONFIG="--without-fp"

编译完之后,会在/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux/bin生成支持softfloat的交叉编译器,如下所示。

arm-softfloat-linux-addr2line arm-softfloat-linux-g++ arm-softfloat-linux-ld       arm-softfloat-linux-size              arm-softfloat-linux-ar         arm-softfloat-linux-gcc        arm-softfloat-linux-nm  arm-softfloat-linux-strings arm-softfloat-linux-as         arm-softfloat-linux-gcc-3.4.5        arm-softfloat-linux-objcopy     arm-softfloat-linux-strip

arm-softfloat-linux-c++      arm-softfloat-linux-gccbug     arm-softfloat-linux-objdump  fix-embedded-paths  arm-softfloat-linux-c++filt    arm-softfloat-linux-gcov       arm-softfloat-linux-ranlib arm-softfloat-linux-cpp        arm-softfloat-linux-gprof      arm-softfloat-linux-readelf


 

嵌入式培训 | 在线报名 | 合作企业 | 关于顶嵌 | 联系我们 | 加入顶嵌 | 友情链接 | 返回顶部

联系电话:010-62640798 62642993 
传真:010-62631735-8900
地址:北京市海淀区紫竹院南路7号院2楼
全国免费咨询电话:400-650-3060
Copyright © 2009 北京顶嵌(TOP-E)开源科技有限公司 - 嵌入式Linux专业培训机构 All Rights Reserved
京ICP06031998

打标机 激光机 二维码
合作网站:白癜风