#freeze
[[FrontPage]]

2009/05/17 からのアクセス回数 &counter;

#contents

ARMの開発環境のセットアップは、難しいというイメージがありましたが、
ここでは、以下の3つの方法を紹介します(マシン環境はMac OS X Leopardです)。

- 必要最低限のツールをソースから作成する
- MacPortを使ってインストールする
- YAGARTOから必要なパッケージをダウンロードして、インストールする 

どちらを採用するかは、いろいろですが私はMacPort版を使うことにしました。

**必要最低限のツールのソースからのインストール [#a55aa492]
ツールが思った通りに機能しないとき、原因の切り分けをするために、機能を
必要最低限に絞ってテストすることがあります。

ここでは、ARMのクロス開発に必要なgccとbinutilsのみを作成する方法を説明します。
((コンパイルオプションなどは、[[OLIMEX SAM7-P64 について>http://homepage.mac.com/nand/hacks/olimex-sam7p64.html]]のページを参考にさせていただきました))

newlibやC++など組み込みであまり必要でないツールを除くことでmakeが非常に簡潔になります。

作成するツールのバージョンは以下の通りです。

- binutils-2.18
- gcc-core-4.0.2

MacPortでは、arm-elf-gdbがないので、ついでにgdbもダウンロードします。
- gdb-6.7.1

*** ソースのダウンロード [#f08a5eb9]
作成に使用するソースを~/local/arm/toolchainに置くことにします。

#pre{{
$ mkdir -p ~/local/arm/toolchain
$ cd ~/local/arm/toolchain
$ curl -O ftp://gcc.gnu.org/pub/binutils/releases/binutils-2.18.tar.bz2
$ curl -O ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.0.2/gcc-core-4.0.2.tar.bz2
$ curl -O ftp://sourceware.org/pub/gdb/releases/gdb-6.7.1.tar.bz2
}}

*** binutilsの作成 [#p0596c39]
最初にbinutilsを作成します。

configureのオプションには、以下のオプションを指定します。
- --target=arm-thumb-elf

#pre{{
$ tar xjvf binutils-2.18.tar.bz2
$ mkdir binutils-2.18/build
$ cd binutils-2.18/build
$ ../configure --target=arm-thumb-elf
$ make
}}

約3分程度でコンパイルが終わります。

正常にコンパイルできたら、/usr/local/binにインストールします。
#pre{{
$ sudo make install
}}

インストールが完了すると/usr/local/arm-thumb-elfと/usr/local/binにツール
セットされます。

*** gccの作成 [#eee2be32]
gccは、binutilsとほとんど同じ作業になります。

configureのオプションには、以下のオプションを指定します。
- --target=arm-thumb-elf
- --without-libs

#pre{{
$ tar xjvf gcc-4.0.2.tar.bz2
$ mkdir gcc-4.0.2/build
$ cd gcc-4.0.2/build
$ ../configure --target=arm-thumb-elf --without-libs
$ make
}}

コンパイルには、ちょっと時間がかかります。

正常にコンパイルできたら、/usr/local/binにインストールします。
#pre{{
$ sudo make install
}}


** MacPortを使ったインストール [#s4b5a318]
次に、MacPortを使ってbinutils, gcc, newlibをインストールします。

MacPortの一番のメリットは、最新のバージョンに更新するのが容易なことです。

*** binutils, gcc, newlibのインストール [#r85bc960]
MacPortを使ったインストールはきわめて簡単です。(でも時間はそれなりに掛かります)

#pre{{
$ sudo port install arm-elf-gcc
}}

残念ながら、MacPortでインストールすると/opt/local/bin/にarm-elf-gccが作成されません。
そこで、手作業でgccのシンボリックリンクを作成します。
#pre{{
$ cd /opt/local/bin
$ sudo ln -s arm-elf-gcc-4.3.2 arm-elf-gcc
}}
この作業はARM用のgccをバージョンアップするたびに行う必要があるので、気をつけてください。

*** gdbの作成 [#c2b5e51d]
次に、gdbを作成します。
gdbは、MacPortで作成したgccと一緒に使うので、/opt/local/arm-elfにインストールします。

configureのオプションには、以下のオプションを指定します。
- --target=arm-elf
- --prefix=/opt/local/arm-elf/

#pre{{
$ cd ~/local/arm/toolchain
$ tar xjvf gdb-6.7.1.tar.bz2
$ mkdir gdb-6.7.1/build
$ cd gdb-6.7.1/build
$ ../configure --target=arm-elf --prefix=/opt/local/arm-elf/
$ make
}}

正常にコンパイルできたら、/opt/local/binにインストールします。
#pre{{
$ sudo make install
}}

** YAGARTOを使ったインストール [#ee5ca6da]
初心者にお薦めなのが、YAGARTOツールです。
Windows, Mac OSXに対して、コンパイル済みのパッケージを提供しています。

-  [[YAGARTO GNU ARM toolchain>http://www.yagarto.de/]]
から、yagarto-bu-2.19.1_gcc-4.3.3-c-c++_nl-1.17.0_gdb-6.8_intelmac_20090413.dmgをダウンロードします
- ブルーの箱のagarto-4.3.3をデスクトップにコピーし、ダブルクリックします。
yagarto-4.3.3というフォルダが作成されますので、これをlocal/yagartoにいれます。

- ターミナルからツールが呼び出せるように.profileのPATHを以下のようにセットします。
#pre{{
export PATH="$PATH:$HOME/local/yagarto/yagarto-4.3.3/bin"
export PATH="$PATH:$HOME/local/yagarto/yagarto-4.3.3/tools"
}}

以上で完了です。

** Zylin CDTのインストール [#w5a7c10c]
最後に、EclipseでOpenOCDを使ってソースレベルのデバッグをするためのプラグインZylin CDTをインストールします。

Zylin CDTはEclipseのupdate site機能を使ってインストールします。
私は以下の環境でインストールしています。
- Eclipse SDK Version: 3.4.0以降
- JRE 1.5以降

詳しいインストール方法は、[[YAGARTO>http://www.yagarto.de/howto/yagarto2/index.html]]のサイトを参照してください。

YAGARTOの画像を使って、Zylin CDTのインストール方法を説明します。

- HelpメニューのSoftware Updates...メニューを選択します。

&ref(eclipse23_1.jpg);
- Add Site...ボタンを押して、Zylin CDTのUpdate Siteを追加します。

&ref(eclipse23_2.jpg);
- Locationに
 http://opensource.zylin.com/zylincdt
と入力します。

&ref(eclipse23_3.jpg);

Eclipse 3.4(ganymede)からUpdate Site機能が強化され、足りない機能を自動的に
ダウンロードしてくれるので、とても簡単になりました。

** コメント [#r4452087]
この記事は、

#vote(おもしろかった[16],そうでもない[1],わかりずらい[1])
#vote(おもしろかった[16],そうでもない[1],わかりずらい[2])

皆様のご意見、ご希望をお待ちしております。

#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc