Arduino 0023 でoptibootに染まってみる

Arduinoソフトウエアが0023版にアップデートされたので中身をのぞいてみると、

多くのAVRに対応したoptibootが含まれており、optibootが標準になってきたようです。

optibootは、アップロードの高速化、ユーザエリアの拡大など、メリットが多いので実装してみます。

-

●まず、ちびでぃ~の2ユーザーの方から要望のあった、ちび2optiboot化を試してみました。

フラッシュメモリのブートローダーイメージ
 arduino-0023\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.HEX
ヒューズ設定値
 arduino-0023\hardware\arduino\boards.txt の
  uno.bootloader.low_fuses=0xff
  uno.bootloader.high_fuses=0xde
  uno.bootloader.extended_fuses=0x05

をMEGA328に焼きます。

Arduinoの Tools ? board プルダウンメニューから”Arduino Uno”を選択すると、高速にアップロードができるようになりました。

今後、ちびでぃ~の2は、optiboot版で頒布していきます。

-

●つぎに、なのぼ~どV1.2での内臓8MHzクロック用のoptibootをMAKEしてみました。

従来のなのぼ~どは、16MHzクロックのMEGA8用optibootのオブジェクトを焼いていました。

8MHz用のオブジェクトは用意されていなかったので、MAKEファイルに定義を追加します。

arduino-0023\hardware\arduino\bootloaders\optiboot\MakeFile に下記を追加

# ATmega8-8m
#
atmega8-8m: TARGET = atmega8
atmega8-8m: MCU_TARGET = atmega8
atmega8-8m: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200'
atmega8-8m: AVR_FREQ = 8000000L
atmega8-8m: LDSECTIONS? = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe
atmega8-8m: $(PROGRAM)_atmega8-8m.hex
atmega8-8m: $(PROGRAM)_atmega8-8m.lst

atmega8-8m_isp: atmega8-8m
atmega8-8m_isp: TARGET = atmega8-8m
atmega-8m8_isp: MCU_TARGET = atmega8
# SPIEN, CKOPT, Bootsize=512B
atmega8-8m_isp: HFUSE = DC
# 2.7V brownout, Internal 8MHz osc (8MHz)
atmega8-8m_isp: LFUSE = 94
atmega8-8m_isp: isp

###

コマンドプロンプトで、このフォルダに移動して、”omake atmega8-8m” を実行して、オブジェクトを作成。

出来上がった “optiboot_atmega8-8m” を AVRに焼きます。

ヒューズも下記のように焼きます。

low_fuses=0x94
high_fuses=0xDC

arduinoフォルダの中にある、hardware\arduino\boards.txt の末尾に下記を追加します。

 
##############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=stk500
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
##############################################################

Arduinoの Tools ? board プルダウンメニューから”[Optiboot] ATmega8 8MHz”を選択すると、
スケッチのアップロードができるようになりました。
なのぼ~どV1.2からは、このブートローダーを書き込んでいきます。

__________________________________________________

3 Responses to “Arduino 0023 でoptibootに染まってみる”

  1. [...] ArduinoIDEの設定方法はArduino 0023 でoptibootに染まってみるの末尾部分を参照してください。(ちびでぃ~のPROと同じ使い方です) 出来上がったAVRチップをターゲット基板に差替えれば、シ [...]

  2. [...] http://tiisai.dip.jp/?p=1413 Arduino 1.0.3 [...]

  3. [...] http://tiisai.dip.jp/?p=1413 Arduino 1.0.3 [...]

Leave a comment