Cortex-M0 Arduino互換環境 eXodusinoとブートローダの改良
前回紹介したeXodusino[エクソダシノ]量産先行品はブートローダを改良しました。
XMODEMを廃止し、無手順UARTによりバイナリを書き込むシンプルな方式です。
eXodusinoプロジェクトはgithubから一式をダウンロードできます。
http://github.com/lynxeyed-atsu/eXodusino/
注意:プロジェクトに含まれているBootloader.axfは評価版扱いです。書き込みファイルサイズに15kB制限があります。
特別な事情がない限りeXodusinoに出荷時に書き込まれているブートローダをご利用ください。なお、書き込みにはLPCXpressoやSWDに対応しだデバッガが必要になります
※制限はなくなりました
- eXodusinoを使うのに用意する機材
- 基本的にXBeeを接続して使う
開発のスナップショット...(クリック→オリジナルサイズを表示で拡大します)
ご覧のとおり、Arduino語で開発が可能です。写真のツリーの/src/user_application.cppがAdruinoスケッチ(.pde)に相当する部分です。コンパイルはメニューのProject→Build allで可能ですが、ショートカットキーの[Ctrl]+[B]の方が使いやすいです。
- 書き込み
- まず、eXodusinoにUSB mini-Bケーブル、または他の方法で給電します。
- ターミナルソフトを使います。例ではTeraTermを使っています。
- eXodusinoのCPUリセットボタンを押します
-
- TeraTermの画面でキーボードの[z]を押し続けます。(連打ではなく、押し続けます)
- リセットボタンから手を離してから、[z]キーからも手を離します
するとこんな画面が出てくるはず
これでプログラム待ち受け状態になりました。
CUTECOMなど、キーを押したときだけ1文字送信するタイプのターミナルをお使いの方へ:eXodusinoはリセット後、約1秒間待機状態になります。この間にzを1文字入力すればBootloaderモードに遷移します。
- バイナリファイルを書き込む
- TeraTermでは[ファイル(F)]→[ファイル送信(S)...]でバイナリを選択できます。
-
- Releaseフォルダの[exodusino.bin]を選択し一番下のオプションメニューの[バイナリ(B)]に必ずチェックを入れます
-
- しばらく書き込みを待ちます。256バイト書き込むごとに[o]の文字が羅列されていきます。もしこれが[x]と表示された場合、書き込みが失敗しています。書き込んだファイルが正しいか確認して下さい。
最後の[Program end. Rebooting...]というメッセージが少し遅れて(2,3秒程かかる)表示されます。これは続くデータが無いかの確認と、チェックサムを計算しているためです。
マイコンは自動で再起動します。例ではボード上のカラーセンサーS9706からデータを読み出しています。
なおこのチェックサムが失敗しているか、マイコンが再起動時にキーボードから[z]キーを押していると、再起動時に再び[Welcome to eXodusino..]が表示されます。ご注意下さい。