2006-04-22 WinAVR20060422
-----------------
■ gcc tiny13/2313以降のmovw命令対応
  tiny13や2313以降に発表されたtinyシリーズは(attiny25/45/85等)movw命令が使用
  できます。
  オリジナルのgccではavr2の分類になっていますのでmovw命令はgccでは使用されません
  movwを使用することで命令サイズの削減と実行スピードのアップが期待出来ます。
  ライブラリの関係からavr2のままで特別に新tinyシリーズのみmovwを使用するように
  変更を加えました。

■ gcc-binary-constants.patch パッチ
  gcc用の２進表記パッチを一部掲示板で要望のあった仕様にしてみました
>>
  PORTA = 0x53; 
  PORTA = 0b01010011;   // 今までのパッチ
  PORTA = 0b0101_0011;  // 今回のパッチで使用可能な記法
  PORTA = 0b_0101_0011; // これもＯＫ '_'の数はいくつでも良い
>>
  このように記述すると確かに見やすくなりますがソースの互換性がなくなります
  欠点を理解した上でご利用ください。

■gcc マルチバイト対応
 gcc をマルチバイト対応で作成しました。
 libiconv-1.10 を使用しています。
 http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.10-ja-patch.html
 Shift-JISには0x5cを含む文字が含まれていますがこれはＣのエスケープ・コードと認識
 されてしまいます。
 例えば
------------------------------------
  int main(void)
  {
①    // コメント漢字可能
②    printf("123\n");
③    printf("テスト表示\n");
  }
------------------------------------
  ①の最後の '能'は 0x94,0x5cとなりコメントが継続されてしまいます
  よって②はコンパイルされません
  ③は'表'が0x95,0x5cですのでこれも正常に出力するには
  printf("テスト表\示\n")
  の様に記述する必要があります。

  マルチバイト対応にすることでＣソース中の日本語文字列を正しく認識します
  ただし有効とするにはオプションの指定が必要です。
  Makefileに以下の行を追加します
    CFLAGS += -finput-charset=cp932 -fexec-charset=cp932

  ------------------------------------
 * 0x5cを含む Shift-JIS漢字
 *
 *  805c  815c  825c  835c  845c  855c  865c  875c
 *  '  '  '―'  '  '  'ソ'  'Ы'  '  '  '  '  'Ⅸ'
 *  885c  895c  8a5c  8b5c  8c5c  8d5c  8e5c  8f5c
 *  '  '  '噂'  '浬'  '欺'  '圭'  '構'  '蚕'  '十'
 *  905c  915c  925c  935c  945c  955c  965c  975c
 *  '申'  '曾'  '箪'  '貼'  '能'  '表'  '暴'  '予'
 *  985c  995c  9a5c  9b5c  9c5c  9d5c  9e5c  9f5c
 *  '禄'  '兔'  '喀'  '媾'  '彌'  '拿'  '杤'  '歃'
 *  e05c  e15c  e25c  e35c  e45c  e55c  e65c  e75c
 *  '濬'  '畚'  '秉'  '綵'  '臀'  '藹'  '觸'  '軆'
 *  e85c  e95c  ea5c  eb5c  ec5c  ed5c  ee5c  ef5c
 *  '鐔'  '饅'  '鷭'  '  '  '  '  '  '  '  '  '  '
 *  f05c  f15c  f25c  f35c  f45c  f55c  f65c  f75c
 *  '  '  '  '  '  '  '  '  '  '  '  '  '  '  '  '
 *  f85c  f95c  fa5c  fb5c  fc5c
 *  '  '  '  '  '纊'  '犾'  '  '
  ------------------------------------

■ クロスコンパイルは 
  mingw_5.0.2.exe/MSYS-1.0.10 http://www.mingw.org/
    gcc-3.4.5-20060117 (mingw special)
    binutils-2.16.91-20060119
 を使用しました。

 AVR用のgcc/binutilsは
  gcc-3.4-6.tar.bz2
  binutils-2.16.1.tar.bz2
  libiconv-1.10-ja-1-mingwPORT.tar.bz2
 を使用しました。

-----------------

[Known MCU names]
  avr1 avr2 avr25 avr3 avr35 avr4 avr5 at90s1200 attiny10 attiny11
  attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343
  attiny22 attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535
  at90c8534 at86rf401 attiny13 attiny2313 attiny24 attiny25 attiny44
  attiny45 attiny84 attiny85 attiny261 attiny461 attiny861 atmega603
  atmega103 at43usb320 at43usb355 at76c711 at76c712 at76c713 atmega48
  atmega8 atmega83 atmega85 atmega88 atmega8515 atmega8535 at90pwm2
  at90pwm3 atmega16 atmega161 atmega162 atmega163 atmega164 atmega164p
  atmega165 atmega165p atmega168 atmega169 atmega169p atmega32 atmega323
  atmega324 atmega324p atmega325 atmega3250 atmega329 atmega3290 atmega406
  atmega64 atmega640 atmega644 atmega644p atmega645 atmega6450 atmega649
  atmega6490 atmega128 atmega1280 atmega1281 at90can32 at90can64
  at90can128 at90usb646 at90usb647 at90usb1286 at90usb1287 at94k

[binutils-2.16.1]
  binutils-2.15-avr-coff.patch
  binutils-2.16.91-20060119-1-src.diff
  binutils-2.16-newdevices.patch
  binutils-2.16.1-add-at90usb.diff
  binutils-2.16.1-avr25.diff
  binutils-2.16.1-avr-size.diff

  ./configure --target=avr --prefix=c:/WinAVR
  make && make install

[gcc-3.4.6]
  gcc-3.4.4-20050522-1-src.diff
  gcc-dwarfdebug.patch
  gcc-fixinc-win32.patch
  gcc-avr-misspelled-sig-1.patch
  gcc-binary-constants.patch
  gcc-collect2-win32-dave.patch
  gcc-3_4_0-avr-new-devs-with-tiny2313-fix.patch
  gcc-avr-AT90PWMx-devs2.diff
  gcc-3.4.4-devices-325-3250-645-6450.patch
  gcc-3.4.4-devices-329-3290-649-6490.diff
  gcc-3.4.4-devices-164-324-644.diff
  gcc-3.4.4-attinyx4-devs.diff
  gcc-3.4.4-attinyx5-devs.diff
  gcc-3.4.4-atmega640_1280_1281.diff
  gcc-3.4.4-atmega406-dev.diff
  gcc-3.4.4-add-at90usb.diff
  gcc-4.0.2-avr25.diff
  avr.md.patch (patch -p2 -R < avr.md.patch)

  ./configure --target=avr --prefix=c:/WinAVR --enable-languages="c,c++" --with-dwarf2 --disable-nls --enable-c-mbchar
  make && make install

