2010年12月10日金曜日

Fastbootの再ビルド

アセンブラで書かれてるコードを、AVRStudioで再ビルドした。結果はこんな感じ。
VMのWINxpでやったので、DOS窓の画面だ。よく読むと解るが、BPSを変えても追従する。512B以内のコードで動いてるブートローダーとして見れば立派。
こっちの方が良いんじゃないか?と密かに思う。
4800BPS以下での通信出来るからAVR-CDCが使える可能性が有る。同じTiny85を使って、通信と、実行のアプリを個々に実行出来る可能性が有る訳だ。(これは結構助かるかも)
上の実行例は、FDTIを使ってる。その前に、PICでやったのだが、接続が安定しなかったのだ。mega8u2でもたぶん大丈夫なんだろう。

tiny45のAVR-CDCも今試したが接続出来た。(転送出来るかはなんとも・・まだです)

optibootで散々悩んだのから考えれば、ビルドから、3−4時間で状況が見えたから割と簡単だと思う。

ブートローダー部は、コマンドプロンプト仕様のが提供されてる。WIN版が、COM6までしか行かないのはちょっと気になってる。MAC/WIN版には、元々そうゆう順番は無いから関係無い。(個人的に言えば、OSが悪い・・が、それで済ます訳にもいかんだろうな)

その問題をクリアすれば、何らかの、ラッパーを噛ませれば、Arduinoから転送出来るはずだ。ちょっとアプリを開発するといい事が有りそうだ。Realbasicで書けそうなら、作ると思う。

どっちみち、圧縮して送ってるとも思えないし。プロトコルが公開されてるから、PC側のアプリは開発出来るし。そんなにコマンドが多くは無いので、Avrdudeに処理させるのも可能だと思う。
一応パスワードロックも有るらしいし・・
初戦は、パソコン通信のレベルの話しだから、ターミナル一個書く程度の知識があれば問題無いだろう。(凄いのじゃなくて、通信出来れば言いレベルのターミナルなら、VBや、Realbasicなら一瞬で書けるもんだ、特に表示の必要がほとんど無い訳だから・・簡単では無いかと思ってる。)

逆に、その中間アプリに、ArduinoのTEMPを監視させて、変更されたら送るかどうか聞くような構造も有りだろうと思うし。
コンパイルしたら、自動転送するってのも有りではと思ってる。

この程度の、アプリなら、私は、2・3日有れば、実用レベルまでは持って行けるから・・作っちゃった方が速そうな気がしてる。

optibootより簡単に見通しが立った。


MACでの結果

=================================================
|             BOOTLOADER, Target: V2.1          |
=================================================
COM dev  : /dev/cu.usbserial-A6008Snk
Baudrate : 4800
Program  : RST2313T.hex
-------------------------------------------------
Waiting for device... Press CTRL+C to exit. -
...Connected!
Bootloader    : V2.1
File "devices.txt" not found!
Target        : 1E930B (?)
Buffer        :     64 Bytes
Size available:   7678 Bytes

CRC enabled and OK.
Reading RST2313T.hex... File read.
Highest address in hex file: 0x00111 (273 Bytes)
Writing program memory...
Programming "RST2313T.hex": 00000 - 00111 SUCCESS

CRC: o.k.
Elapsed time: 1.724 seconds
...starting application

やった完璧・・全然転送はFTDIでやりました。容量小さいから、4800BPSでも遅くないし・・
で調子に乗ってAVR-CDCでもやったけど、やっぱりOK
ベリファイも問題無く通る!

例のResetを拡張してる、AVR-CDCも実用として動いてる!(完璧じゃん)・・つまりオートリセットが効いてる!!!(Arduinoの乗りだね)

=================================================
|             BOOTLOADER, Target: V2.1          |
=================================================
COM dev  : /dev/cu.usbmodem3d21
Baudrate : 4800
Verify   : kyorituAVRWRT.hex
-------------------------------------------------
Waiting for device... Press CTRL+C to exit. /
...Connected!
Bootloader    : V2.1
File "devices.txt" not found!
Target        : 1E930B (?)
Buffer        :     64 Bytes
Size available:   7678 Bytes

CRC enabled and OK.
Reading kyorituAVRWRT.hex... File read.
Highest address in hex file: 0x007FF (2047 Bytes)
Verifying program memory...
Verify kyorituAVRWRT.hex: 00000 - 007FF SUCCESS

CRC: o.k.
Elapsed time: 4.865 seconds
...starting application

これがAVR-CDCで送ったもんのベリファイ・・転送に5秒かかった。
2KBで5秒だから、フルに送ると、4倍弱で、18秒くらいかかるはず。
この構成じゃあ当たり前とも言えるから気にしない。

=================================================
|             BOOTLOADER, Target: V2.1          |
=================================================
COM dev  : /dev/cu.usbserial-A6008Snk
Baudrate : 115200
Program  : kyorituAVRWRT.hex
-------------------------------------------------
Waiting for device... Press CTRL+C to exit. \
...Connected!
Bootloader    : V2.1
File "devices.txt" not found!
Target        : 1E930B (?)
Buffer        :     64 Bytes
Size available:   7678 Bytes

CRC enabled and OK.
Reading kyorituAVRWRT.hex... File read.
Highest address in hex file: 0x007FF (2047 Bytes)
Writing program memory...
Programming "kyorituAVRWRT.hex": 00000 - 007FF SUCCESS

CRC: o.k.
Elapsed time: 2.162 seconds
...starting application

FTDIに変更して、最高速まで上げるとこんな感じ。
 ベリファイはこんな感じ
Verifying program memory...
Verify kyorituAVRWRT.hex: 00000 - 007FF SUCCESS

CRC: o.k.
Elapsed time: 1.604 seconds
...starting application

速度をこんなに上げても所詮、これくらいしか速くはならないのだ。



と言う事で見通しが立っちゃったけどーーー

Tiny85を共同購入してくれる人には、コンパイル済みのブートーローダーごとあげるよ!
正月すぎまでには、GUIアプリも作って配ります。(いかが?)

ちなみに、Arduino IDEのはき出した、HEXで動くのは、ISPで実験済み・・そっちのコアの有りかとかもね。

ついでに言うと、全く同じ構成で、秋月で@90円のTiny2313ももちろん動きます。ただし、残1.5KBですけど・・
8Mhzと、1MHzでビルド済みです。
ビルドは、AVRStudioだけで出来るし、tiny861と言う、秋月の最新のTinyも使えるし、容量に問題無ければ(Ardunoじゃ無理って言う意味)tiny13まで使えちゃいます。


次は、PB5を使えるようにしてみます!(夢のI/O 6Pinで、高電圧書き込みしないで、アプリ書き換え可能って言う奴ね!!)

マジでこれ面白すぎ!


0 件のコメント:

コメントを投稿