Arduino IDEに付属しているavrdudeを使うと、Arduinoへ直接へプログラムを書き込んだり、ブートローダを書き込んだりすることができます。Mac OS X だと、「file:///Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/doc/avrdude/」にドキュメントがあり、Webブラウザで閲覧できます。
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/ にツールはあります。そこをカレントディレクトリにしてコマンドを実行するのが簡単でしょう。下記の例では、USB接続したマイコンへmain-12.hexというプログラム(hidspxのプログラム)を書き込んでいます。書き込みにはArduino ISPを使っています。
$ sudo ./avrdude -C ../etc/avrdude.conf -b 19200 -c avrisp -P /dev/tty.usbmodem1411 -p t2313 -e -U flash:w:main-12.hex:i -F Password: avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.06s avrdude: Device signature = 0x1e910a avrdude: erasing chip avrdude: reading input file "main-12.hex" avrdude: writing flash (2022 bytes): Writing | ################################################## | 100% 5.23s avrdude: 2022 bytes of flash written avrdude: verifying flash memory against main-12.hex: avrdude: load data flash data from input file main-12.hex: avrdude: input file main-12.hex contains 2022 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 3.12s avrdude: verifying ... avrdude: 2022 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you.
下記ではATtiny2313のヒューズビットを更新しています。
$ sudo ./avrdude -C ../etc/avrdude.conf -b 19200 -c avrisp -P /dev/tty.usbmodem1411 -p t2313 -U hfuse:w:0xdb:m avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.06s avrdude: Device signature = 0x1e910a avrdude: reading input file "0xdb" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.06s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xdb: avrdude: load data hfuse data from input file 0xdb: avrdude: input file 0xdb contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.02s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: safemode: Fuses OK avrdude done. Thank you.
$ sudo ./avrdude -C ../etc/avrdude.conf -b 19200 -c avrisp -P /dev/tty.usbmodem1411 -p t2313 -U lfuse:w:0xff:m avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.06s avrdude: Device signature = 0x1e910a avrdude: reading input file "0xff" avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.06s avrdude: 1 bytes of lfuse written avrdude: verifying lfuse memory against 0xff: avrdude: load data lfuse data from input file 0xff: avrdude: input file 0xff contains 1 bytes avrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.02s avrdude: verifying ... avrdude: 1 bytes of lfuse verified avrdude: safemode: Fuses OK avrdude done. Thank you.