chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

AVR用開発環境を仕立てる。。トラブル→解決

プチネタでまたavrを使ってみようと思い、win-avrをダウンロードしてインストールした。試しにcygwinの環境でコンパイラを動かしてみると以下のエラーメッセージが。。


$ avr32-gcc hello.c
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
少しぐぐったけど、これはcygwinの問題ではなくて、windows側の問題のようだ。Visual C++とかでも出るようで、ライブラリの整合性の問題か?? たしかに、Visual C#は入ってるけど。。原因がよく分からない。
ちなみに、cygwinの環境でavr32-gccを走らせるとエラーになるが、DOS窓だったらエラーにならない。パスも同じに揃えても結果は変わらず。

なお、一度にコンパイルアセンブル>リンクとやるとエラーになるけど、コンパイルだけして、生成されたソースをアセンブラで分けてコード生成するとエラーにならない。なぜか分からんけど、分割コンパイル(って言うのか)すると問題ないので、臭い逃げの方法だけど、Makeで分割コンパイルするようにして逃げるか。。

本当なら根本原因を探りたいところだけど、情報もあまりなくて分からない。

さらに調べていると、TMPの環境変数が設定されていないとエラーになるという記事を見つけて試してみた。すると、、以下のとおり正常に動作するようになった。


$ export TMP=/tmp
$ avr-gcc hello.c
// 正常にコンパイル終了

$ unset TMP
$ avr-gcc hello.c

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
// 上記のとおりエラー中断

$ export TEMP=/tmp
$ avr-gcc hello.c
// 正常にコンパイル終了

はぁーすっとした。Thanks!!
しかし、、あまりに情報が少ないのだけど、みんなはまってないのかなーー!?

■ご参考URL

cles::blog平常心是道様; TEMPがないとMinGWGCCがクラッシュする
http://blog.cles.jp/item/3874
(トラバ飛ばしたけどエラーになった。。でも感謝!)