スポンサーサイト

.-- -- スポンサー広告 comment(-) trackback(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AVRライタ高速化(1)

.03 2010 AVR-USB comment(0) trackback(0)
Read Burst Modeを用意して高速化してみました。
あちこちアセンブリ化してサイズを縮小していった結果こんな感じに収まりました。
% avr-size -C --mcu=attiny2313 main.elf
AVR Memory Usage
----------------
Device: attiny2313

Program:    2048 bytes (100.0% Full)
(.text + .data + .bootloader)

Data:         68 bytes (53.1% Full)
(.data + .bss + .noinit)

プログラムメモリ100.0%キタ――(゚∀゚)――!!

さて、どのくらい速くなったかというと…
tiny2313のプログラムメモリすべてを読むのにかかった時間を計測してみました。
Read Mode : 9s
Read Burst Mode : 3s

2kbyteで3sはまだまだ遅いですね…
Mega328のReadBackには48sもかかる計算です。
原因をいろいろ考えてみましたが、USBホストからのIN要求が10msに一回くらいしか来ていないのではないかという結論に達しました。
そうすると10msに8byteなので数値は合います。
おそらくLowSpeedModeのInterruptはbIntervalを1に指定しても10msに一回しかpollingしてくれないようですね。それならこのモードでの最高速が達成できていることになります。

これを見る限り今の律速段階はUSBの通信部分なので、これを高速化します。
Interrupt転送からBulk転送に変えれば速度がかなり変わるはずです。

が、…
プログラムメモリに余裕がない!!
残りの部分もアセンブリに落とさないといけないんだろうか…
関連記事

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackbackURL:http://yuranos.blog11.fc2.com/tb.php/71-3b1f8d56
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。