Arduinoにスケッチをコンパイルせずに書き込む

ツイート

※このページの情報は手元のWindows環境をもとに書かれています。 Linuxなどの他のOSや環境では読み替える必要が生じる可能性があります。
※このページの情報が正しい保証はしません。自己責任で利用してください。 特に、このページの方法を実践した結果、Arduinoなどが壊れても責任は一切負えません。

Arduinoにスケッチを書き込むとき、 公式の開発環境(1.0.6)ではいちいちコンパイルをしないと書き込めないようです。
しかし、全くスケッチを書き換えておらず、実行するプログラムを入れ替えたいだけなのに、 いちいちコンパイルをするのは時間とCPU時間の無駄のような気がします。
そこで、コンパイル結果を保存し、いちいちコンパイルをしなくてもスケッチを書き込めるようにします。

検証環境

ステップ1:コンパイル結果を保存する

  1. 対象のスケッチをコンパイルします。(「検証」ボタンが利用可能です)
  2. WindowsのTempフォルダを開きます。
    例えば、Windows Vistaの場合C:\Users\(ユーザー名)\AppData\Local\Tempにあるかもしれません。
  3. そこにあるbuild(数字列).tmpというフォルダの中から、一番更新日時が新しいものを開きます。
  4. そこにある(対象のスケッチ名).cpp.hexというファイルを探します。
  5. これが目的のコンパイル結果であるはずなので、わかりやすい場所にコピーします。
    ファイル名は変えてかまいません。

ステップ2:コンパイル結果をArduinoに書き込む

Arduinoの開発環境は、avrdude.exeというツールを利用してArduinoに書き込みを行っているようです。
この実行ファイルを渡されたコマンドラインを表示するプログラムに置き換えて書き込みを実行すると、
実行するべきコマンドラインが表示されるので、 hexファイルの部分を書き込みたいhexファイル(コンパイル結果)に書き換えて実行します。

これを簡単に実行するためのバッチファイルを用意しました。
使用する前に、Arduino開発環境のパスを環境に合わせて書き換えてください。
書き込み対象の種類は、Arduino UNOを対象にする場合は書き換えなくて大丈夫なはずです。

ダウンロード:write.bat

上記write.batがカレントディレクトリまたはパスの通っているディレクトリにある状態で、
YUKI.N>write Arduinoを接続したポート 書き込みたいhexファイル
というコマンドを実行すれば書き込めるはずです。
ポートを"COM10"のように指定して失敗する場合は、"\\.\COM10"のように指定してみてください。


戻る