1

私はPXA270Xscale開発ボード(Gumstixに類似)で遊んでいて、クロスコンパイラーが提供されていましたが、それはGCC3.3.3です。独自のクロスコンパイラを構築する方法を学びたいので、セットアップをカスタマイズできますが、ツールチェーンを正常に構築するためにcrosstoolsとcrosstools-ngを取得するのに問題がありました。私の主なニーズは、GCC4.2.Xとソフトフロートを使用する機能を使用することです。私はUbuntu9を実行しています。そのようなシステムのツールチェーンを構築するための推奨事項やアドバイスはありますか?

前もって感謝します、

ベン

4

5 に答える 5

2

www.gnuarm.comには、独自の ARM クロス コンパイラを構築するための手順と、ダウンロード可能なバイナリがあります。そこには GCC 4.2.x はありませんが、私はそれらの手順と非常によく似た手順を使用して構築しましたが、あまり問題はありません。

なぜソフトウェア浮動小数点が必要なのですか? とても遅くなります。ほとんどのアプリケーションは、実際には固定小数点の実装 (読み取り: 整数) のみを使用する必要があります。

于 2010-02-06T04:07:49.373 に答える
1

私も crosstool を使用し、Cygwin で arm-xscale-linux-gcc をビルドできました。手順はこちら: http://sourceforge.net/apps/mediawiki/imote2-linux/index.php?title=ToolsGccArm

于 2010-04-21T23:55:52.217 に答える
1

crosstool* を使用してクロスコンパイラーを構築できない場合、クロスツールなしでは構築できない可能性があります。それは簡単ではありません!

/etc/apt/sources.listただし、編集して含めることで、最近のクロスコンパイラを Ubuntu に簡単に取り込むことができます。

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

それから言う

apt-get アップデート
apt-get install g{cc,++}-4.3-arm-linux-gnueabi

于 2010-02-12T16:38:47.187 に答える
1

短い答え、非常に難しい。より長い答え、試してみてください。あなたはそれに出くわすかもしれませんが、そうではないでしょう。ハードフロートを使用した Xscale の可能性が高く、浮動小数点を使用しないでください。私は多くの組み合わせを試して失敗したことを知っています。探している組み合わせが通常、最後に機能する古い gcc を使用するのには理由があります。彼らが持っているものを確認するために codesourcery を見て、そこにあるツールを使用するか、彼らが何をしているのかを知ることが最善の策です。

于 2010-02-06T04:09:41.287 に答える
1

アーム クロス ツールチェーンの作成には、Dan Kegel のcrosstoolを使用しました。数回の試行が必要でしたが、最終的には正しく設定することができました。

gcc、glibc、binutils、および Linux カーネル ヘッダーの適切な組み合わせを判断するために、さまざまなアーキテクチャのビルド結果のマトリックスを確認することをお勧めします。

以下は、アーム クロス ツールチェーンの作成に使用したスクリプトです。私の要件はあなたの要件とは少し異なりますが、ニーズに合わせて変更できる場合があります。

#!/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 がありました

于 2010-02-10T17:19:50.720 に答える