ブートローダ

ブートローダはArduino開発環境で作ったプログラム”Sketch”をUSB経由でArduinoに書き込むための「Arduino側に実装して動作させる」小さなプログラムです。

WOBで使用しているブートローダは”Optiboot”を改造して作ったものです。フラッシュの占有領域がたった500バイトと非常にコンパクトなのが特徴です。Optibootの詳しい説明はこちらで参照してください。

ビルドパス(ソースコード格納場所)

(arduinoインストールフォルダ)\hardware\arduino\bootloaders\wob

ビルド方法

  1. コマンドプロンプトを立ち上げる。
  2. ビルドパスに移動。
  3. “omake clean wob”を実行。(omakeはオマケじゃなくて、o[ptiboot] makeのこと)
C:(arduino)\hardware\arduino\bootloaders\wob>omake clean wob
C:(arduino)\hardware\arduino\bootloaders\wob>..\..\..\t
ools\avr\utils\bin\make OS=windows ENV=arduino clean wob
rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex
../../../tools/avr/bin/avr-gcc -g -Wall -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls -mmcu=atmega324p -DF_CPU=20000000L  '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200L'   -c -o optiboot.o optiboot.c
../../../tools/avr/bin/avr-gcc -g -Wall -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls -mmcu=atmega324p -DF_CPU=20000000L  '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200L' -Wl,--section-start=.text=0x7e00 -Wl,--relax -Wl,--gc-sections -nostartfiles -nostdlib -o optiboot_atmega324p.elf optiboot.o
../../../tools/avr/bin/avr-size optiboot_atmega324p.elf
   text    data     bss     dec     hex filename
    500       0       0     500     1f4 optiboot_atmega324p.elf
../../../tools/avr/bin/avr-objcopy -j .text -j .data -j .version --set-section-flags .version=alloc,load -O ihex optiboot_atmega324p.elf optiboot_atmega324p.hex
..\..\..\tools\avr\bin\avr-objdump -h -S optiboot_atmega324p.elf > optiboot_atmega324p.lst
rm optiboot_atmega324p.elf optiboot.o

C:(arduino)\hardware\arduino\bootloaders\wob>

HEXファイル”optiboot_atmega324p.hex”が出来上がる。

WOBへの書き込み

AVRStudioを使ってHEXファイルをAVRISPmkII経由でWOBに書き込む。(ちなみに上記omake経由でAvrdudeを使う書き込みは試していません。どなたか試されましたらレポートいただければ助かります。)

  1. AVRStudio4をインストール*1
  2. パソコンにAVRISP mkIIをUSB接続、自動的にUSBドライバのインストールが行われる
  3. AVRStudio4を起動、プロジェクトの選択はキャンセル
  4. WOBにAVRISP mkIIを接続(”ISP”コネクタCON3、1番ピンの向きに注意)
  5. WOBの電源を入れる→AVRISP mkIIのLEDが緑に点灯
  6. AVRStudio4のメニューTools→Program AVR→Connect…
  7. Platform: AVRISP mkIIを選択→Connect…ボタン
  8. Mainタブを選択→Device and Signature BytesからATmega324PAを選択→Read Signatureボタンで正しくチップのシグネチャが読み込まれることを確認
  9. Fusesタブを選択→「ATmega324ヒューズビット」で説明した通りの設定にする→Programボタンでヒューズが正しく書き込まれたことを確認
  10. Programタブを選択→Flashの枠の中Input HEX Fileを選択し、前述のHEXファイルを指定→Programボタンで書き込み開始
  11. 書き込みが成功したらWOBの電源OFF→ISPケーブル外す→AVRStudio4終了→AVRISP mkII外す

上記のスクリーンショット

*1 Atmelのアーカイブからダウンロードしてインストールする。バージョン4.16(ユーザ登録不要)と4.19(登録必要)で動作確認した。