AVR-gccがCygwin上でも走るようです。

   Cygwinについて

●Cygwinとは?

CygwinはWindows上でGNUツール類を走らせるためのフリーのツールです。これによりAVR-GCCなどのUNIX用のアプリが走る可能性があります。またいらなくなったらディレクトリごと消すだけです。Cygwinそのものについては次の場所を見てください。

・Cygwin情報
CygwinのDLL(cygwin1.dll)関連に詳しい。Cygwinの開発者の一人のページ。

・Cygwinを使う
Cygwin上でのGNUツール類の情報。

・Cygwin Infomation
コンパイル、make情報。

・Binary Wiz
Cygwin上でNEC V850、SHなどのクロスコンパイラ環境を構築。その他FPGAなど。必見。

これらあたりがポインタになると思います。以前別件で試したときは正直使える状況ではなかったような印象でしたが、最近使ってみると、これが使える(きちんとmakeできるものが多くなった)。そこでAVR-GCCもコンパイルしてみたらすべてコンパイルできましたので以下に記録しときます。

追伸(2001/01/06)
上記の話はCygwin1.1.4の時のものでしたが、現在の1.1.7ではmakeがうまく通らなくなっています。また安定したら作り直します。

追伸(2000/01/11)
どうやらディレクトリの高い位置で/bin/sh実行のスクリプトを走らせると確実に動かないようです。これはディレクトリ構造を見失ってしまうためだと考えられます(./../../hogeが通らない)。シェルを毎回指定すれば動くので(/bin/sh ./../../hoge)そうしてbinutilsはコンパイルできましたがgccの方は引数に指定しないといけないので、今回は改善されるまで待つこととします。

追伸(2000/01/13)
スクリプトが走らないのは/bin/shが病んでいるためでした。sh.exeを消去して上位互換であるbash.exeをコピーしてsh.exeにリネームすることで回避できました。これでbinutilsは通りますがgccはスナップショットのためautogen等が必要であり、構築までは行きませんでした。

   Cygwinのセットアップ

●Cygwinをセットアップしてみる

セットアップについても上のページを見たほうがいいのですが、一応私の時の過程を記録しときたいと思います(極私的内部啓蒙用記録です、笑)。多分NetRelease版でないと走らないと思います。

(1)ダウンロードツールのダウンロード
ネットから直接ダウンロードできるようになっていました。
http://sourceware.cygnus.com/cygwin/mirrors.html
ここからたどってsetup.exeをダウンロードしました。

(2)ダウンロード
このsetup.exeをつかって簡単にダウンロードできるようになっていました。便利。私はひとまずファイル類をローカルにダウンロードしました。

(3)インストール
再びこのsetup.exeを使用してパソコンにインストールしました。c:\cygwinというディレクトリとc:\にショートカットができましたので、これをデスクトップあたりにコピーしました。

(4)ひとまず走らせる
スタートアップから実行させてみました。おお、ディレクトリ関係がまともです。進化してるっ。終わるときはlogoutです。

(5)各種設定してみる。
上記のリンクの中からセットアップ方法を参考にできます。私は以下のようにしました。

・login時の初期設定ファイル
/etc/profileを~/.bash_profileとしてコピーしました。

cp /etc/profile ~/.bash_profile

nameのところは多分コンピュータ名が入っていると思います。

・~/.bash_profileを編集
秀丸エディタとかで編集できます。一応ここにおいておきます
EUCでsaveしないといけません。以降パスを通すときとかにもこのファイルを使います。

後は普通につかえます。

   AVR-GCCのセットアップ

ここでのセットアップと同じです。ホームディレクトリにAVRというディレクトリを作ります。されにその中にsrcというディレクトリを作りここでコンパイルすることにしました。

cd
mkdir avr
cd avr
mkdir src
cd src

●binutilsのインストール

CVSアクセスは面倒ですのでスナップショットのbinutils-000806.tar.bz2を使いました。これらはここからたどれます。まあこれより新しい日付だったらいいと思います。ダウンロードしたら、~/avr/srcにおいて(もちろんwin上からできます)、

bunzip2 binutils-000806.tar.bz2
tar xvf binutils-000806.tar

などとし展開。できたbinutils-000806というディレクトリに移動して

./configure --target=avr --prefix=~/avr
make
make install

で~/avr以下にbinディレクトリができ、アセンブラなどができるはずです。Pen2-400はほしいところ。

●gccのインストール

gccをコンパイルするときにavr-asを使うので~/avr/binにパスを通します。.bash_prifileの中で追加しています。前述のファイルを見てください。さらに一度Cygwinを終わって再起動するとパスがとおっています。envとか打って確かめてみてください。

こちらもスナップショットを使いました。スナップショットのegcs-core-20000731.tar.gzを使いました。ここからたどったところにありました。~/avr/srcにおいて

tar xvzf egcs-core-20000731.tar.gz

で展開。できたegcs-20000731ディレクトリに移動してパッチを当てます。ここから拝借してました(snap shotのところから)。なぜか私がダウンロードしたときは圧縮ファイルのはずなのに展開されていました(謎、エディタなどでそのまま開いてみたらわかります、もしSJISになってたらEUCで上書き保存してしまいましょう)。これをegcs-20000731ディレクトリの中にコピーして、

patch -p1 < avr-gcc-patch-20000830

としてパッチを当てます。そのまま

./configure --target=avr --prefix=~/avr --enable-languages=c
make
make install

といきたいのですがパッチを当てたところがなぜかコンパイルできませんでした。パッチの部分がSJISコードになってるみたいです。上記のとおりコンパイルしてみて、もしエラーが出たらそのときエラーの起こったファイル名が出ているので/gcc/config/avr/の中のファイルを秀丸エディタか何かで一度開いてEUCで上書き保存してみてください。私の時は、avr.h、avr.md、avr.c、からエラーが出ました。直したらそのまままたmakeです。続きからコンパイルが始まります。

●avr-libcのインストール

同じくここからavr-libc-20000730.tar.gzをいただいてきて展開します。

tar xvzf avr-libc-20000730.tar.gz

その中のsrcディレクトリに入って

make prefix=~/avr
make prefix=~/avr install

これで完了です。

   まとめ

個人的な話しですがLinuxBoxが高いところに行ってしまったので、SAMBAで共有してtelnetで使っていましたが、これでwin上ですべて開発できそうです(モバイルでもできそう、フィールドワークでISPなんかオツです)。Cygwinがこんなに進化してるとは思いませんでした。といってもちょっと何かあるとwin上に殺せないプロセスを残して死んでしまうみたいです。それとCygwinは以前にましてかなり重くなってしまったような気がします。プレーンな環境で比較したらK6-2-333MHz上で486-50MHz位と同じな気がします。もっと早いパソコンがほしいな。

いずれにせよすべてフリーでこれだけの環境が手に入るとは素敵な話しですね。


戻る