扱っているマイコンボードは多岐にわたっているのと、時期によってデザイン思想が変わっている事もあり、ブートローダの挙動がどれもまちまち。とりあえずXMODEMによるバイナリファイル転送という点は共通化されたのだが、ブートローダへ入る方法が気まぐれ過ぎる。
なにか安直な方法はないかとデータシートをまじまじ眺めていると、どのチップも起動直後の条件を取得できる様である。つまり、電源ON一発目なのか、ウォッチドッグでリブートしたのか、ソフトリブートしたのか、外部からのリセット信号でリブートしたのか等々。
そろそろお目見目する予定のDIGITUSシリーズはUSB接続が前提となるので、コンソールから何かしらのシグナルを送ることはちょっと考えにくいし、もともとピン数が少ないところに態々スイッチなんてのも流行りじゃない。
結論から言ってしまうと、「リセットボタンを押したらブートローダに入る」ということ。これが一番確実で、ユーザアプリケーションで想定されるプログラムとの競合も少ないハズ。
ひとまずATmegaが載った輩がコードサイズ的に厳しいので、試しに入れてみた。結果は良好。いままで「!」を連打してた手間も省けていいかんじ
。
ということで、勝手ながら今後のブートローダの仕様を変更させていただきますので、びっくりしないでくださいね。
技術