9


5

私はSTM32(Cortex-M3)を使い始めようとしています、そして私の計画はこれをUbuntu(9.04 / AMD64)から動かすことです。

まず始めに Olimex[stm32-h103ヘッダーボードと Olimex[Olimexを手に入れました。 ARM-USB-OCD jtag、そしてそれ以降は、おそらくOpenOCD、gcc、Eclipseを使用します。

しかし今、私はどのバージョンのgccを使うべきか、そしてコードをクロスコンパイルできるようにそれをどのように設定するべきかを調べています。

そこにはいくつかの武器プロジェクトがあるようですが、何から始めればいいのかわかりません、誰かが私を正しい方向に推し進めることができますか?

ありがとうヨハン

'' '' '

更新codesourceryから欲しいものはほとんどあるようですが、AMD64ではなくIA32に焦点を当てているようです。

しかしサポートされているデバイスで私はCortex-M3を見つける

  • ARM EABI、ARM Mプロファイルシミュレータ-mcpu = cortex-m3 -mthumb

更新:AMD64にIA32をインストールする可能性があるので、マークされた答えはすでに時代遅れです。

更新:Cortex-M3用のクロスコンパイルに関するこのリンクが見つかりました。

1 回答


6


この答えが少し「読めない」ようになったので、私はこの情報でページを作成しました。

'' '' '

'' '' '

これはこれら2つのガイドに基づく無料の解釈ですが、私はバージョンを変更し、それを機能させるためにいくつかのパッチを適用する必要がありました。

まずいくつかの基本的なもの

sudo apt-getインストールflex bison libgmp3-dev libmpfr-dev autoconf texinfo build-essential

それから私はツールチェインを保存する場所を作りました(cj.usersをあなたにとって良いものに変更してください)。

エクスポートTOOLPATH = / usr / local / cross-cortex-m3 sudo mkdir / usr / local / cross-cortex-m3 sudo chown cj.users / usr / local / cross-cortex-m3

Binutils

wget http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2 tar -xvjf binutils-2.19.tar.bz2 cd binutils-2.19 mkdir build cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls
vi ../gas/config/tc-arm.c

make install install export PATH = $ {TOOLPATH} / bin:$ PATH cd ../ ..

gcc

wget ftp://ftp.sunet.se/pub/gnu/gcc/releases/gcc-4.3.4/gcc-4.3.4.tar.bz2 tar -xvjf gcc-4.3.4.tar.bz2 cd gcc-4.3 .4 mkdir build cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --enable-languages="c,c++" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld
make all-gcc make install-gcc cd ../ ..

Newlib

wget ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz wget http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch tar -xvzf newlib-1.17.0.tar.gz cd newlib-1.17.0

それから私はこのようなものでパッチを適用したいのですが(それはうまくいきませんでした)

patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch

そこで私はそれを手動で開き、パッチに従って6651行を編集しました。

vi configure

mkdirビルドcdビルド
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared
"CFLAGS_FOR_TARGET ="  -  ffunction-sections -fデータ・セクション-DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -mcpu = cortex-m3 -mthumb -D__thumb2__ -D__BUFSIZ mth = 256 mc = mth = 256 -D__thumb2__ "make install cd ../ ..

もっとgcc

cd gcc-4.3.4 / build make CFLAGS = " -  mcpu = cortex-m3 -mthumb" CXXFLAGS = " -  mcpu = cortex-m3 -mthumb" LIBCXXFLAGS = " -  mcpu = cortex-m3 -mthumb"すべてインストール

まとめる

今私は私の〜/ .bashrcにいくつかのパスを追加しました

#STM32 gcc ... エクスポートTOOLPATH = / usr / local / cross-cortex-m3エクスポートPATH = $ {TOOLPATH} / bin:$ PATH

そして私は次のステップの準備ができているはずです…​