ブートローダはArduino開発環境で作ったプログラム”Sketch”をUSB経由でArduinoに書き込むための「Arduino側に実装して動作させる」小さなプログラムです。
WOBで使用しているブートローダは”Optiboot”を改造して作ったものです。フラッシュの占有領域がたった500バイトと非常にコンパクトなのが特徴です。Optibootの詳しい説明はこちらで参照してください。
ビルドパス(ソースコード格納場所)
(arduinoインストールフォルダ)\hardware\arduino\bootloaders\wob
ビルド方法
- コマンドプロンプトを立ち上げる。
- ビルドパスに移動。
- “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を使う書き込みは試していません。どなたか試されましたらレポートいただければ助かります。)
- AVRStudio4をインストール*1
- パソコンにAVRISP mkIIをUSB接続、自動的にUSBドライバのインストールが行われる
- AVRStudio4を起動、プロジェクトの選択はキャンセル
- WOBにAVRISP mkIIを接続(”ISP”コネクタCON3、1番ピンの向きに注意)
- WOBの電源を入れる→AVRISP mkIIのLEDが緑に点灯
- AVRStudio4のメニューTools→Program AVR→Connect…
- Platform: AVRISP mkIIを選択→Connect…ボタン
- Mainタブを選択→Device and Signature BytesからATmega324PAを選択→Read Signatureボタンで正しくチップのシグネチャが読み込まれることを確認
- Fusesタブを選択→「ATmega324ヒューズビット」で説明した通りの設定にする→Programボタンでヒューズが正しく書き込まれたことを確認
- Programタブを選択→Flashの枠の中Input HEX Fileを選択し、前述のHEXファイルを指定→Programボタンで書き込み開始
- 書き込みが成功したらWOBの電源OFF→ISPケーブル外す→AVRStudio4終了→AVRISP mkII外す
上記のスクリーンショット
- 6. Tools→Program AVR→Connect…
- 7. Platform: AVRISP mkIIを選択→Connect…ボタン
- 8-1. Mainタブ→ATmega324PAを選択
- 8-2. Read Signatureボタン
- 9. Fusesタブ→ヒューズビット設定→Programボタン
- 10. Programタブ→HEXファイルを指定→Programボタン
*1 Atmelのアーカイブからダウンロードしてインストールする。バージョン4.16(ユーザ登録不要)と4.19(登録必要)で動作確認した。