2011年1月9日日曜日

LUFAは一個前の使ってるみたい、最新だと駄目みたい。

LUFA 100807と言うバージョンが必要。
そのフォルダの中に・・firmwaresフォルダを放り込んで、makeすると、hexが出来る。
makefaileのMCU = at90usb82の部分を適当に書きかえる。例えば・・
MCU = atmega8u2
MCU = atmega32u2
と書き換えて、makeするとこうなる。

---- Compile Time Library Options ----
USB_DEVICE_ONLY
FIXED_CONTROL_ENDPOINT_SIZE=8
FIXED_NUM_CONFIGURATIONS=1
USE_FLASH_DESCRIPTORS
INTERRUPT_CONTROL_ENDPOINT
DEVICE_STATE_AS_GPIOR=0
USE_STATIC_OPTIONS=(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
--------------------------------------

--------- Target Information ---------
AVR Model: atmega32u2
Board: USER
Clock: 16000000Hz CPU, 16000000Hz Master
--------------------------------------

Size after:
AVR Memory Usage
----------------
Device: atmega32u2

Program:    4058 bytes (12.4% Full)
(.text + .data + .bootloader)

Data:        303 bytes (29.6% Full)
(.data + .bss + .noinit)



-------- end --------

LUFAの中にサンプルがいくらでも有るから・・これは遊べる。
 0021に入ってたソースは、at90usb82になってたが、0022のは、atmega8u2に変わってました。
 これやる前に、avr-gccのpower.hに数行足しておくのをお忘れ無く。

 一応書くが・・OSXの場合、avr-gccの位置や、avrdudeの位置は、/usr/local 以下の、非表示領域に有るから何らかの手段で、たどり着いてください。
 私はどこかから拾ってきた、スクリプトで全部表示させて、該当フォルダのパーミッションにadminを足して操作してます。(そうしないと書けないし面倒)

 面倒くさがりなので、こんなコマンド集が、デスクトップに入ってます。

 sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit

 これ以下に、書き換えたいファイル名書けば・・普通のテキストエディタで書き換え可能になります。(どんなやばい物でも書き換え可能になるので注意する事)
 わりとチマチマとコピペで、フォルダーまでcdして、lsしてファイルの存在確認して、この行をコピペして、書き換えたいファイル名書いて、リターン押せばOK
 終わったら、テキストエディタを完全に終了command-Qする事をお忘れ無く。

 nanoとかシェルのエディターは慣れないので・・こればっか。

 上記コンパイルで、ちょっと気になってるのは・・mega8u2だと8KB有るんだけどさ・・これ DFU分だけかも・・.bootloaderって書いて有るけど・・

 mega8u2コンパイルしたらこうなった
---- Compile Time Library Options ----
USB_DEVICE_ONLY
FIXED_CONTROL_ENDPOINT_SIZE=8
FIXED_NUM_CONFIGURATIONS=1
USE_FLASH_DESCRIPTORS
INTERRUPT_CONTROL_ENDPOINT
DEVICE_STATE_AS_GPIOR=0
USE_STATIC_OPTIONS=(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
--------------------------------------

--------- Target Information ---------
AVR Model: atmega8u2
Board: USER
Clock: 16000000Hz CPU, 16000000Hz Master
--------------------------------------

Size after:
AVR Memory Usage
----------------
Device: atmega8u2

Program:    4058 bytes (49.5% Full)
(.text + .data + .bootloader)

Data:        303 bytes (59.2% Full)
(.data + .bss + .noinit)



-------- end --------

やっぱ4KBに落ちてる。

0021のコードもmakeしてみたが
undefined reference to `USB_DeviceState
と言うエラーで止まってしまった、

0022の変更箇所に、なんかそんなの書いて有ったような記憶も有る。
とりあえず、0022はmake出来たからいい、0021にバグが有るかも知れないって事か・・

結構進歩したかも。

0 件のコメント:

コメントを投稿