しなぷすのハード製作記

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用ブートローダスケッチライタシールドキット
税抜き小売価格 1200円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 2200円
販売店 スイッチサイエンス 妙楽堂
サポートページ
M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット 商品名 M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット
税抜き小売価格 100円
販売店 スイッチサイエンス
サポートページ
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
サイトマッププライバシーポリシーお問い合わせ用語集
しなぷすのハード製作記