ATmega88/88V/168P/328PにArduinoのブートローダを書き込む(5)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ
2016年11月03日 公開。

8.ブートローダをコンパイルする方法

ATmega88/88V/168P/328Pのサポートファイルに含まれているブートローダのコンパイルの方法について説明します。Windows 10の環境でコンパイルする事を前提に説明します。

8-1.サポートファイルに含まれているブートローダの種類

1ページ表2で紹介したATmega88/88V/168P/328Pのサポートファイルには、表6に示す様に、マイコン別、クロック周波数別に6種類のブートローダが含まれています。

表6、ATmega88/88V/168P/328Pサポートファイルに含まれるブートローダの一覧
ブートローダのファイル名 マイコンの型番 クロック周波数
optiboot_atmega88_8MHz.hex
ATmega88/88V
8MHz
optiboot_atmega88.hex ATmega88 16MHz
optiboot_atmega168p_8MHz.hex ATmega168P 8MHz
optiboot_atmega168p.hex ATmega168P 16MHz
optiboot_atmega328_8MHz.hex ATmega328P 8MHz
optiboot_atmega328.hex ATmega328P 16MHz

8-2.Optibootのソースファイルの場所

表6に挙げたブートローダをビルドするためには、Optibootのソースファイルが必要になります。GitHubのOptibootのページからダウンロードする方法もありますが、GitHubのソースファイルを利用すると、コンパイルのための環境を自力で構築する必要があり、とても手間がかかります。

Arduino IDEにOptibootのソースファイルが付属していますので、それを利用する事にします。ただし、最近のArduino IDEには、Optibootをコンパイルする環境が付属していないようですので、Arduino IDE 1.0.1をダウンロードして使う事にします。

8-3.Arduino IDE 1.0.1のダウンロード

arduino.ccArduino IDEの過去のバージョンのダウンロードページから、Arduino IDE 1.0.1をダウンロードします。図32を参考に、ダウンロードしてください。arduino-1.0.1-windows.zipというZIPファイルがダウンロードできます。

図32、Arduino IDE 1.0.1をダウンロード
図32、Arduino IDE 1.0.1をダウンロード

ダウンロードしたZIPファイルを展開すると、arduino-1.0.1というフォルダができます。これをCドライブの直下にコピーしてください。

8-4.Makefileとのダウンロード

ATmega88/88V/168P/328Pのブートローダをコンパイルするには、Optibootのソースファイルに加えて、ATmega88/88V/168P/328P用の設定を記したメイクファイル(ファイル名:MakeFile)が必要になります。MakeFileは、次のリンクからダウンロードしてください。

ATmega88/88V/168P/328P用Optiboot Makefileのダウンロード Makefile_atmega.zip (4kB)
広告

8-5.ブートローダのコンパイル法

Optibootのソースファイルは、以下のディレクトリ(フォルダ)にあります。

C:\arduino-1.0.1\hardware\arduino\bootloaders\optiboot

このディレクトリの内容は、図33の様になっています。

図33、optibootディレクトリの内容
図33、optibootディレクトリの内容

これらのファイルの中で、Makefileが、各マイコンのブートローダの設定を記述したファイルです。これを、先ほどダウンロードしたMakefileと置き換える必要があります。そのために、元々optibootディレクトリにあるMakefileを、例えばMakefile_oldにリネームして保存しておき、先ほどダウンロードしたMakefile_atmega.zipを展開して得られるMakefileoptibootディレクトリにコピーします。

図34、Makefileを置き換える
図34、Makefileを置き換える

また、Arduino IDE 1.0.1に付属するoptibootのソースコードは、ATmega168Pに対応していませんので、optiboot.cpin_defs.hの一部を書き換える必要があります。

optiboo.cをテキストエディタで開き、231行目が次の様になっている事を確認してください。

#if defined(__AVR_ATmega168__)

この行を次の様に書き換えて、上書き保存してください。

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__)

またpin_defs.hをテキストエディタで開き、1行目が次の様になっている事を確認してください。

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__)

この行を次の様に書き換えて、上書き保存してください。

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) || defined(__AVR_ATmega168P__)

次にブートローダのコンパイルを行います。コンパイルには、omake.batというバッチファイルを用いて、コマンドラインから操作します。

図35の様に、画面左下のスタートボタンを右クリックし、コマンドプロンプトを起動してください。

図35、コマンドプロンプトの起動
図35、コマンドプロンプトの起動

コマンドプロンプトが起動したら、次の様に入力してからエンターキーを押し、カレントディレクトリ(作業を行うディレクトリ)をoptibootディレクトリに移します。(図36参照)

cd C:\arduino-1.0.1\hardware\arduino\bootloaders\optiboot
図36、カレントディレクトリをoptibootディレクトリに変更
図36、カレントディレクトリをoptibootディレクトリに変更

この状態で

omake atmega88

と入力し、エンターキーを押すと、コンパイルが始まり、optiboot_atmega88.hexというファイルができます。これが、16MHzのATmega88用のブートローダです。(図37、図38を参照)

図37、omake atmega88を実行した時の画面表示
図37、omake atmega88を実行した時の画面表示
図38、生成されたブートローダのファイル
図38、生成されたブートローダのファイル

入力するコマンドと、生成されるブートローダの対応表を、表7に示します。

表7
入力するコマンド 生成されるブートローダ 適合するマイコンの型番 クロック周波数
omake_atmega88_8MHz optiboot_atmega88_8MHz.hex ATmega88/V 8MHz
omake_atmega88 optiboot_atmega88.hex ATmega88 16MHz
omake_atmega168p_8MHz optiboot_atmega168p_8MHz.hex ATmega168P
8MHz
omake atmega168p
optiboot_atmega168p.hex ATmega168P 16MHz
omake atmega328_8MHz
optiboot_atmega328_8MHz.hex
ATmega328P
8MHz
omake atmega328
optiboot atmega328.hex
ATmega328P
16MHz
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ

関連ページ

関連製品

Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ
M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット 商品名 M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット
税抜き小売価格 120円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。