SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Eclipse/ARMプロセッサによる組込み開発

【第2回】ホスト


  • X ポスト
  • このエントリーをはてなブックマークに追加

GNUとフリーソフトウェア、オープンソースソフト

 GNUは無償、無保証のソフトをソースリストで公開しています。このソースリストで公開していることから、オープンソースソフトと混同されることがしばしばありますが、GNUは自分らが公開しているソフトウェアをフリーソフトウェアとしています。これらの違いは、筆者よりはるかに詳しい方がウェブの各所で説明されていますので、興味のある方は各自でお調べください。

 連載第2回の今回は、このGNUソフトウェアのクロスコンパイラGCCとデバッガGDB(上記の1.と2.)の入手とインストールです。この辺は、プログラミングを生業とされる方々には馴染み深い範囲かと思います。

GCC/GDB(Windows)

 Windowsでは、自分自身のソフトウェアのコンパイルは通常状態では用意されていません。Visual C++やCygwinで自分でビルドと言う手もありますが、あまり一般的ではありません。そこでコンパイル済みのバイナリを利用します。

入手とインストール

 Windows版のARMのクロスコンパイラは下記から入手できます。

 ですが、最新版で生成したRoboShellのバイナリは動作しません。以前のバージョンのクロスコンパイラを利用します。

 以前のバージョンのクロスコンパイラはTeamKNOxのサイトからダウンロードできます。適当なディレクトリに展開してパスを通しておきます。DOSプロンプトから、

arm-none-eabi-gcc[Enter]

 を実行し、

arm-none-eabi-gcc: no input files

 と表示されれば OK です。

 gdbも同梱されていますので、展開すれば使えるようになります。

arm-none-eabi-gdb[Enter]

 を実行し、

GNU gdb (CodeSourcery ARM Sourcery G++ 2006q3-26) 6.5.50.20060822-cvs
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
 you are welcome to change it and/or distribute copies of it under 
certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for 
details.
This GDB was configured as "--host=i686-mingw32 --target=arm-none-eabi".
For bug reporting instructions, please see:
.

(gdb)

 と表示されればOKです。

 quitでプログラムを終了します。

GCC/GDB(UNIX系OS)

 現在、一般的に利用されているUNIX系OSと言えば、LinuxとMacOSXでしょう。これらの環境では標準的にコンパイラが用意されているので、本家GNUからtarボールを入手して自分自身でビルドすることができます。

Linux

 筆者はLinux環境としてFedora Core(FC)7を使っています。インストールはDVDでブートディスクを作成した後にネットワークで最新環境に保つようにしています。

MacOSX

 Tigerを想定しています。

 MacOSXの場合はXCODEが必須です。予め、下記からダウンロードしてインストールしておきます。ダウンロードするためにはユーザ登録が必要になりますので、こちらは各自で済ませておいてください。

gccの入手

 GNUや関連サイトから下記のファイルをダウンロードしておきます。

  1. binutils-2.18.tar.gz
  2. gcc-4.2.1.tar.bz2
  3. gcc-g++-4.2.1.tar.bz2
  4. newlib-1.15.0.tar.gz

 最近ではプレリリース版である4.2.3がダウンロード出来るようになっています。好みでダウンロードすればよいでしょう。本稿でクロスコンパイラのビルドの方法をマスターすれば、常に最新版でソフト開発を行うことが出来るようになり、いわゆる GCCの「おっかけ」になることが出来ます。

gccのインストール

 ビルドの仕方は、LinuxもMacOSXもほぼ共通です。インストールは全てroot権限で行っておくと良いでしょう。全てのファイルは/tmpディレクトリにダウンロードしておきますが、MacOSXでは起動時に/tmpディレクトリの内容は全て消去されてしまうので注意してください。

1.binutils
tar xvzf binutils-2.18.tar.gz 
./configure --target=arm-elf --prefix=/usr/local/arm 
make install
2.newlibの展開

 gccのメイク時にnewlibのヘッダファイルを使用するので、展開しておきます。ここでは、/tmp以下に展開します。

 また、gcc/g++のメイクの際に、newlibのヘッダファイルの位置を指定しますが、うまく動作しないため/usr/local/arm/includeというシンボリックリンクを作成しておきます。

tar xvzf newlib-1.15.0.tar.gz 
cd newlib-1.15.0 
ln -s /tmp/newlib-1.15.0/newlib/libc/include /usr/local/arm/include
3.gcc/g++ 1回目

 デフォルトでインストールされているgcc(x86用)では、libsspを有効にしてconfigureを実行するとlibsspのリンクチェックの際に、newlibのcrt0.oのリンクに失敗するため、まずはlibsspを使用しないARM用のクロスコンパイラを作成します。

export PATH=$PATH:/usr/local/arm/bin 
bzip2 -dc gcc-4.2.1.tar.bz2 | tar xvf - 
bzip2 -dc gcc-g++-4.2.1.tar.bz2 | tar xvf - 
cd gcc-4.2.1 

./configure --target=arm-elf --prefix=/usr/local/arm/ --enable- languages=c,c++ --with-cpu=arm7tdmi --with-newlib --with-headers= /tmp/newlib-1.15.0/newlib/libc/include/ --disable-ada --disable-libssp  make  make install
4.newlib 1回目

 メイクしたlibssp無効のコンパイラを使用して、newlibをメイクします。なお、make installの前に、シンボリックリンクを削除しておきます。

cd /tmp 
./configure --target=arm-elf --prefix=/usr/local/arm/ --disable-ada --disable-libssp 
make 
rm /usr/local/arm/include
5.gcc/g++ 2回目

 1回目でメイクしたlibssp無効のコンパイラを使用して、libssp有効のコンパイラをメイクします。なお、make installの前に、1回目にメイクしたコンパイラをアンインストールします。

export PATH=$PATH:/usr/local/arm/bin 
mv gcc-4.1.1 gcc-4.1.1-1st 
bzip2 -dc gcc-4.2.1.tar.bz2 | tar xvf - 
bzip2 -dc gcc-g++-4.2.1.tar.bz2 | tar xvf - 
cd gcc-4.2.1 

./configure --target=arm-elf --prefix=/usr/local/arm/ --enable -languages=c,c++ --with-cpu=arm7tdmi --with-newlib --with-headers= /tmp/newlib-1.15.0/newlib/libc/include/   make  make uninstall  注)ルールがない場合あり  make install
6.newlib 2回目

 メイクしたlibssp有効のコンパイラを使用して、newlibをメイクします。

mv newlib-1.15.0 newlib-1.15.0-1st 
tar xvzf newlib-1.15.0.tar.gz 
cd newlib-1.15.0 
./configure --target=arm-elf --prefix=/usr/local/arm/ 
make 
make uninstall  注)ルールがない場合あり 
make install

次のページ
gdbの入手

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Eclipse/ARMプロセッサによる組込み開発連載記事一覧

もっと読む

この記事の著者

大橋 修(大宮技研合同会社)(オオハシ オサム)

大宮技研 エグゼクティブ・エンジニア。都立高専電気工学科卒業後、日本精工(株)でエアバッグの制御ソフトウェア開発、ボッシュ(株)にてエンジンマネージメントシステム開発、適合ツールの開発、プロジェクトマネージメント、ノキアにてシンビアンOS用ミドルウェアS60の開発などをおこなう。インテルを経て、首都大学東京...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3712 2009/03/17 13:29

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング