mbed のオンラインコンパイラを使って開発していると
- オンラインでコンパイルする
- 完了後ファームウェア(.hexや.bin)が自動的にダウンロードされる
- ファイルシステムとしてマウントされているmbedのボリュームに、ファームウェアを書き込む
- ファームウェア書き込み後、自動リセットがかかる
- このとき Mac だと「ディスクの不正な取り出し」が右上の最上位に表示され邪魔…
みたいな流れなんだけど、コンパイルを実行するだけであとはよしなにやって欲しいので、手作業が必要となる3と、ダイアログが出て邪魔な5をどうにかしたい。
mbed-autowriter
ので作ったヨ。
# gem install mbed-autowriter
とかで適当に入れて
$ mbed-autowriter
で立ち上げると、標準だと ~/Downloads/ の変更を監視し、.hex や .bin が保存されたら自動で mbed のボリューム(標準だと /Volumes/MBED/)にファイルを移動しファームウェアを書き込こむ。
こんな感じの表示が出る。
Donwloads Path: /Users/hotchpotch/Downloads/
mbed Volume Path: /Volumes/MBED
# オンラインコンパイラでコンパイルされ .hex ファイルがダウンロードされた
Found: mbed_blinky_TY51822R3 (1).hex, move to: /Volumes/MBED
Succeed: umount /Volumes/MBED
また
$ mbed-autowriter -d /path/your_downloads_dir/ # set download dir
$ mbed-autowriter -m /Volumes/NODE_L476RG/ # set mbed mount volume
でオプションで変更できる。なおボリュームの自動マウント解除(umount)は通常のユーザ権限ではできないので、適当にユーザが umount できる権限を付与するか
$ sudo mbed-hex-autowriter
で root 権限つけて立ち上げれば、umount も自動でやってくれる。