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

更新 : 2001/03/08

   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できるものが多くなった)。現在のバージョンではいくつかの修正を行うことでコンパイルが可能となっています。

追伸(2001/03/08)
最新バージョンでセットアップしてみました。現在のバージョンでこのレポートは更新されています。バージョンは次のとおり。

Windows2000SP1
cygwin1.1.8-2
cygwin1-20010307.dll.bx2
binutils-010305.tar.bz2
gcc-core-20010305.tar.gz
avr-libc-20010303.tar.gz

以前のバージョンのものはここに置いておきます。

   Cygwinのセットアップ

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

セットアップについても上のページを見たほうがいいのですが、一応私の時の過程を記録しときたいと思います。NetRelease版でないと走らないと思います。NT系のほうがきちんと動くのでwin2000SP1上で確認しています。95系は動きがおかしいことがある。

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

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

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

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

(5)cygwin1.dllの置き換え
現時点でシェルスクリプトがうまく動かないことがあるのはcygwin1.dllを入れなおすと直るようです。今回はcygwin1-20010307.dll.bz2に入れなおしました。上記のリンクのNightly Snapshotから拝借しました。現在シンボリックリンクをwindowsのショートカットに変更している最中とのことで動かないかも知れないので注意書きのようにnowinsymlinksを環境変数に付け加えました。

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

・cygwin.batの設定
インストールしたディレクトリにcygwin.batができていますのでこれを設定します。私の場合はこのように設定しました。

@echo off
C:
chdir \cygwin\bin
SET HOME=c:\cygwin\home\ホームを作るディレクトリ
SET MAKE_MODE=UNIX
SET CYGWIN="notty binmode ntea nontsec nowinsymlinks"
bash --login -i

ホームディレクトリは試しに一度走らせたならばすでにできていると思いますのでそれにあわせます。日本語だったら通らないと思いますので新しく作ります。
その後バッチの環境を右クリック->プロパティーで設定。この設定はメモリのタブの環境変数を最大にします。その他は自動でいいと思います。更新されたこのショートカットから起動してください。
NTならこのバッチの環境の設定はいりません。

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

cp /etc/profile ~/.bash_profile

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

・~/.bash_profileを編集
秀丸エディタとかで編集できます。設定に関しては上記のcygwin関連のリンクを見ていただきたいのですが、私の設定を一応ここにおいておきます
EUC、LFでsaveしないといけません。以降パスを通すときにもこのファイルを使います。

余談ですが、windows系からファイルの更新するときは改行コードはLFしてsaveする必要があります。秀丸エディタなど最近の高機能なエディタにはこの機能があることでしょう。

   AVR-GCCのセットアップ

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

cd
mkdir avr
cd avr
mkdir src
cd src

新しく作った~/avr/以降に構築することとします。

●binutilsのインストール

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

bunzip2 binutils-010305.tar.bz2
tar xvf binutils-010305.tar

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

./configure --target=avr --prefix=構築したい場所
make
make install

で/avr以下にbinディレクトリができ、アセンブラなどができるはずです。構築する場所は /home/ユーザー名/avr としました。最近は絶対パスを入れないといけません。

●gccのインストール

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

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

tar xvzf gcc-core-20010305.tar.gz

で展開。できたgcc-core-20010305.tar.gzディレクトリに移動して

./configure --target=avr --prefix=構築したい場所 --enable-languages=c

そしてmakeを開始します。

make
make install

これで終了です。avr-gcc -v としてバージョン情報がでたら成功です。

●avr-libcのインストール

次にここからavr-libc-20010303.tar.gzをダウンロードして展開します。

tar xvzf avr-libc-20010303.tar.gz

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

make prefix=構築したい場所
make prefix=構築したい場所 install

これで完了です。

   まとめ

cygwinは常に更新され続けていますので、そのまま通るかも知れません。しかしある程度安定したら新しい機能を追加して不安定になる時期があるようなので、うまくこれらが通ったバージョンがあれば保存しておくのがいいと思います。しかし、最近は速くそして安定もしてきているようです(特にNT上->NTでないとうまく動かないことあり)。でもPen3-1Gはほしいところ。

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


戻る