このページの内容は古いです。 内容を更新したページを参照してください。
AVR用GCCを自分でビルドしてみる
AVRをいじっている皆さんの「出身」はどの方面でしょうか? ウィンドウズ方面?マック方面?僕はUnix/Linux方面です。 たぶん、Unix/Linux方面から来たせいだと思いますが、GUIで開発するのは得意じゃなくて、どうしてもコマンドラインで仕事したくなります。 そんなわけで、AVR用のGCCを自分でビルドしてみます。 ちょっと古いバージョンなら、普段使っているUbuntuにパッケージがあるのでインストールしておしまいなのですが、やっぱり最新版が欲しくなります。 なぜなら、AT90USB162とか、新しめのチップをいじりたいからです。
概要
目新しいことはありません。
AVR Libcのサイトにある、GCC等のビルド方法の解説ページに従ってビルドします。
最終的に、/usr/local/avr
以下にすべてのファイルをインストールすることにします。
準備
ディレクトリを作成します。 スーパーユーザでmake installを行うと悲しいことが起きる可能性があるので、あらかじめchownで自分の物にしておきます。
% sudo mkdir /usr/local/avr % sudo chown 自分 /usr/local/avr % cd /usr/local/avr % mkdir src
binutils
パッチを当てないと、アセンブラが最近のチップで導入された命令を知らないため、GCCのビルドでエラーになります。
% tar xvzf binutils-2.18.tar.gz % cd binutils-2.18 % patch -p0 < パッチファイル % mkdir build % cd build % ../configure --prefix=/usr/local/avr --target=avr --disable-nls
ここでちょっと修正が必要でした。
config.status
を開き、「/usr/local/avr/src/
…/missing makeinfo
」となっている部分を「makeinfo
」に変更します。
makeinfoをちゃんと入れてあるのに、なぜか認識されていませんでした。環境によって異なると思います。
% vi config.status % ./config.status
あとは通常通り。
% make % make install
パスを通しておきましょう。
% export PATH=/usr/local/avr/bin:$PATH
GMPとMPFR
最近のGCCは、GMPとかMPFRとかいうソフトを使用します。
数学系のライブラリです。
もちろん、AVR用のバイナリに組み込まれるのではなくて、コンパイラ自身の実装のために使用しています。
これらがインストールされていない場合、GCCのビルドでエラーになります。
適切なバージョンがOSにインストール済みなら不要です。
ここでは、/usr/local/avr
の下ではなく、/usr/local
の下に直接インストールしてしまいます。
% tar xvjf gmp-4.2.4.tar.bz2 % cd gmp-4.2.4 % mkdir build % cd build % ../configure % make % sudo make install
% tar xvjf mpfr-2.3.2.tar.bz2 % cd mpfr-2.3.2 % mkdir build % cd build % ../configure % make % sudo make install
インストールしたライブラリを検索対象に加えておく必要があります。
% sudo ldconfig
GCC
% tar xvjf gcc-4.3.2.tar.bz2 % cd gcc-4.3.2 % mkdir build % cd build % ../configure --prefix=/usr/local/avr --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2
適切なバージョンのGMPおよびMPFRが入っていないと、ここでエラーになります。 上に戻って、インストールします。
% make % make install
エラーになった場合は、上記のパスを通すのを忘れていないか、ldconfig
を忘れていないか確認します。
AVR Libc
% tar xvjf avr-libc-1.6.2.tar.bz2 % cd avr-libc-1.6.2 % mkdir build % cd build % ../configure --prefix=/usr/local/avr --build=`../config.guess` --host=avr % make % make install
後片付け
必要に応じて、もらってきたアーカイブファイル、展開したソースなどを削除します。
最後に、必要に応じて、/usr/local/avr
ディレクトリ以下をrootの持ち物に変更します。
% sudo chown -R root.root /usr/local/avr
(2008/10/3 - sgk)