debianの.debパッケージで配布されるavr用gccは少し古くて、tiny45がサポートされていない。
自分の環境は以下
debian 4.0 |
kernel 2.6.188-6-686 |
gcc-avr Version 4.1.0 |
libgccのライブラリを作る段階で、本来AVRでは使えないコードが吐かれている?ためエラーでMakeが中断
NEEDED -Dinhibit_libc -I. -I. -I../../.././gcc -I../../../../libgcc -I../../../../libgcc/. -I../../../../libgcc/../gcc -I../../../../libgcc/../include -o _mulsi3.o -MT _mulsi3.o -MD -MP -MF _mulsi3.dep -DL_mulsi3 -xassembler-with-cpp \
-c ../../../../libgcc/../gcc/config/avr/libgcc.S
../../../../libgcc/../gcc/config/avr/libgcc.S: Assembler messages:
../../../../libgcc/../gcc/config/avr/libgcc.S:281: Error: illegal opcode movw for mcu avr3
../../../../libgcc/../gcc/config/avr/libgcc.S:283: Error: illegal opcode movw for mcu avr3
make[4]: *** [_mulsi3.o] エラー 1
make[4]: ディレクトリ `/home/sumi/src/gcc-4.3.2/work/avr/avr35/libgcc' から出ま す
ぐぐると、パッチを当てないといけないらしい。。
http://sourceware.org/ml/binutils/2008-01/msg00037.html
一旦休憩。。>>再開。。
binutils-2.18用のパッチをとってきて当てる。
patch -p0 < 50-9-binutils-2.18-avr35.patch
すると、一ヶ所当たらないところがあり、手で当てる。
avr用のlibを作る。最初、avr-libc-1.6.2でコンパイルを始めたが、
途中でエラーになったため、ひとつ古いバージョンでトライ。
コンパイルしている途中で、実はdebパッケージのavr-gccでコンパイル
されようとしていることがわかり、debパッケージのavrバイナリーは
一旦全て消去。
すみません。最終的にはできましたが、どうやったか、整理して書き直します。。