アトメルの AVR プログラマ AVRISP mkII はもう販売終了していますが、デバイスにさっと書き込むにはやはり大変便利、いまだに愛用しています。でも AtmelStudio 経由で書き込むとウィンドウを開けたり閉じたりしなくてはならず繰り返しプログラミングするときには面倒です。コマンドラインからのプログラミングには Avrdude を使うことが多いですが、このソフトは AVRISP mkII で使われているドライバとうまく通信ができないようで、よっく探すと AVRISP のドライバをハックして無理やり書き込むこともできるようですが、それはちょっと危なっかしい。目的は avrdude を使うことではなくコマンドラインから書き込むことなので、違う方法を探しました。AVRISP mkII はアトメルのものなので Atmel Studio のパッケージの中に何らかのツールがあるはず、と探してみたらありました。atprogram というツールらしいです。以下は使い方のメモです。
PATH 環境変数への登録
C:\Program Files (x86)\Atmel\Studio\7.0\atbackend
あたりにあるのでここを環境変数 PATH に登録します。
デバイスへの接続チェック
プログラマを使うときまずするのがデバイスときちんと通信できるかのチェックですが、以下のコマンドを使います
$ atprogram -t avrispmk2 -i isp -d atmega168 info --signature
Firmware check OK
0x001e9406
Bash–signature オプションを省くとフューズなどもっと詳しい情報が出ます。でもフューズをもっと手っ取り早く読むには
$ atprogram -t avrispmk2 -i isp -d atmega168 read --fuses --format hex
Firmware check OK
dfdeff
Bashデバイスへのファームウェア書き込み
以下が例です
$ atprogram -t avrispmk2 -i isp -d atmega168 program -c -fl -f \
dr-110.elf --format elf --verify
Firmware check OK
Programming and verification completed successfully.
Bashビルドしたイメージのサイズの表示
avr-size コマンドを使います
$ avr-size -C --mcu atmega88 dr-110.elf
AVR Memory Usage
----------------
Device: atmega88
Program: 2468 bytes (30.1% Full)
(.text + .data + .bootloader)
Data: 76 bytes (7.4% Full)
(.data + .bss + .noinit)
Bash