有关为Xscale ARM构建交叉编译器的建议?

时间:2010-02-05 13:45:37

标签: arm cross-compiling toolchain xscale

我正在使用PXA270 Xscale开发板(类似于Gumstix),并提供了交叉编译器,但它是GCC 3.3.3。我想学习如何构建自己的交叉编译器,这样我就可以自定义设置,但是在使用crosstools和crosstools-ng成功构建工具链时遇到了麻烦。我的主要需求是使用GCC 4.2.X和使用软浮动的能力。我正在运行Ubuntu 9.有没有人建议为这样的系统构建工具链?

提前致谢,

5 个答案:

答案 0 :(得分:2)

www.gnuarm.cominstructions用于构建您自己的ARM交叉编译器以及download可用的二进制文件。他们没有GCC 4.2.x,但是我使用非常类似于这些指令的步骤构建它而没有太多问题。

为什么要软件浮点?它会非常缓慢;大多数应用程序只需要使用定点实现(读取:整数)。

答案 1 :(得分:1)

简短的回答,非常困难。更长的答案,继续尝试,你可能偶然发现它,但可能不会。具有硬浮点的Xscale更有可能,并且不使用任何浮点。我知道我尝试了很多组合并且失败了。你正在寻找的组合通常使用较旧的gcc,最后一个使用gcc是有原因的。您可以查看一下代码源,看看它们有什么,使用工具或了解它们可能是您最好的选择。

答案 2 :(得分:1)

我使用Dan Kegel的crosstool来创建我的手臂交叉工具链。花了几次尝试,但我终于能够把它弄好了。

我建议查看各种体系结构的build results矩阵,以帮助确定gcc,glibc,binutils和linux内核头文件的合适组合。

以下是我用来创建arm cross toolchain的脚本。我意识到我的要求与您的要求有所不同,但您可以根据自己的需要进行修改。

#!/bin/sh

set -ex

# Extract crosstool
tar zxf crosstool-0.43.tar.gz
ln -sf crosstool-0.43 crosstool

# Create .dat file for toolchain
cat << EOF > $HOME/arm-cross.dat

BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GCC_EXTRA_CONFIG=--with-float=soft
GCC_LANGUAGES=c,c++
GLIBC_ADDON_OPTIONS==linuxthreads,
GLIBC_DIR=glibc-2.3.6
GLIBC_EXTRA_CONFIG=--without-fp
GDB_DIR=gdb-6.5
KERNELCONFIG="\$HOME/crosstool/arm.config"
LINUX_DIR=linux-2.6.12.6
LINUX_SANITIZED_HEADER_DIR=
SHARED_MODE=--enable-shared
TARGET=arm-softfloat-linux-gnu
TARGET_CFLAGS=-O

BUILD_DIR="\$HOME/crosstool/build/\$TARGET/\$GCC_DIR-\$GLIBC_DIR"
PREFIX="/usr/crossgnu/\$GCC_DIR-\$GLIBC_DIR/\$TARGET"
SRC_DIR="\$HOME/crosstool/build/\$TARGET/\$GCC_DIR-\$GLIBC_DIR"
TARBALLS_DIR="\$HOME/downloads"
TOP_DIR="\$HOME/crosstool"

EOF

# Create toolchain directory
sudo mkdir -p /usr/crossgnu
sudo chown $USER /usr/crossgnu

# Build toolchain
pushd crosstool
eval `cat $HOME/arm-cross.dat` sh all.sh --gdb --notest
popd

注意:我在运行脚本的同一目录中有crosstool-0.43.tar.gz tarball。

答案 3 :(得分:1)

如果您无法使用crosstool *构建交叉编译器,那么没有它们就不可能这样做。这不是直截了当的!

但是,通过编辑/etc/apt/sources.list以包含

,您可以轻松地将最近的交叉编译器放到Ubuntu上

deb http://www.emdebian.org/debian/ lenny main

然后说

apt-get update
apt-get install g{cc,++}-4.3-arm-linux-gnueabi

答案 4 :(得分:1)

我也使用了crosstool,并且能够在Cygwin下构建一个arm-xscale-linux-gcc。说明如下:http://sourceforge.net/apps/mediawiki/imote2-linux/index.php?title=ToolsGccArm

相关问题