組み込み機器のソフトウェア開発は、Webアプリケーションなどの開発とは異なり、何かしらの機材が必ず必要となるものです。このような機材の選択や調達も組み込みシステムいじりの醍醐味(だいごみ)の1つです。
本連載では、以下のものを利用します。
>>マイコンボード本体:
マイコンボード本体は、秋月電子通商の秋葉原の店舗で図7の状態で販売されています。価格は3750円(税込)で、通販でも購入可能です。
図8は、H8/3069Fマイコンボードの付属品です。マイコンボード本体の他に、ドキュメント類、CD-ROM、拡張用コネクタ、おまけの水晶発振子が付属しています。
>>電源アダプター:
マイコンボードには電源アダプターは付属していませんので、別途購入する必要があります(図9)。
電源端子は2.1mm径の標準プラグ(中央プラス)です。電源の定格は電圧5V、電流80mA以上です。図9は秋月電子通商で購入したものです。価格は600円程度です。
>>シリアルケーブル:
開発用PCとマイコンボードとの接続は、シリアルケーブルによって行います(図10)。H8/3069Fマイコンボードにはキーボード端子やディスプレー出力などはないため、入出力はシリアルケーブル経由で行うことになります。ファームウェアの転送もシリアル経由で行います。
シリアルケーブル(いわゆるRS-232Cケーブル)にはD-SUB 9ピンのオス−メス、ストレートタイプのものを利用します。「シリアルストレートケーブル」「シリアル延長ケーブル」「RS-232C延長ケーブル」などと呼ばれているケーブルを用意してください。これも秋月電子通商で購入できます。価格は300円程度です。
>>開発用PC:
いうまでもありませんが、開発にはPCが必要です。
マイコンボードとの接続にはシリアルインタフェースを用いますので、シリアル入出力ポートを持つPCが必要です。シリアル端子がない場合には「USBシリアルアダプター」が利用できますが、ファームウェアの書き込みがうまくいかない場合があるためあまりおすすめできません。
筆者がおすすめするのは、中古PCショップなどで投げ売りされている安価な中古PCを購入して、開発専用機にしてしまうことです。KOZOSの開発専用にしてしまうならばさほどのスペックは必要としませんし、Ubuntuなどをインストールして使うならばWindowsは不要なので、OSなしの状態で売っているロースペックな旧式のもので構いません。これならば数千円程度で入手することも可能です。
>>USBシリアルアダプター:
上記のようにあまりおすすめはできませんが、シリアルポートのあるPCを用意できなかった場合には、USBシリアルアダプターを利用するという方法もあります。
写真のもの(図11)とは異なりますが、秋月電子通商で900円程度で購入できます。筆者がいろいろと使ってみた範囲では、この秋月電子通商のものが最も癖なく利用できるように思います。価格も安いのでおすすめです。
今回は第1回として、まずはマイコンボード用の「Hello World!」をビルドし、動作させてみます。
PC上でプログラミング言語を学ぶ際には「Hello World!」から入る場合が多いですが、ここでもそれにならってみます。ただし、マイコンボードの場合には外部ディスプレイなどはありません。H8/3069Fマイコンボードにはシリアル端子がありますので、今回はこのシリアル端子から「Hello World!」という文字列を出力するプログラムを動作させてみます。
つまり、PCとマイコンボードを接続し、通信用アプリケーションを起動してからマイコンボードを電源ONすると、アプリケーション側に「Hello World!」と表示されるというだけのプログラムです。
しかし、これだけのプログラムだとしても、やらなければならないことはいろいろとあります。リセットベクターの設定、スタックの設定と初期化、シリアルの初期化、文字列処理ライブラリの作成などが必要です。これらを全てフルスクラッチで作成してみます。
なお、ここではWeb連載ということで簡便に説明しますが、詳細な情報が知りたければ参考文献[1]も併せて参照してください。
まずは、PCの準備が必要です。筆者が確認している開発環境は以下です。
他にもMacなどで開発している方もいるようです。
Windowsを利用したい方は、「cygwin」を利用するのが簡単です。また、「andLinux」を利用すればWindows上にUbuntu環境が簡単に構築できます。他にも各種エミュレータなどを使って、仮想PC上にUbuntu環境を構築するというのもいいでしょう。
本稿では、FreeBSDか各種GNU/Linuxディストリビューションでの利用を前提として説明します。筆者のページでも細かい注意点などを説明してありますので、参考文献[2]も併せて参照してください。
まずはファームウェアの作成のために、クロスコンパイラをビルドしてインストールします。
本連載では、クロス開発のコンパイラ環境として、GNUプロジェクトのbinutilsとgccを利用します。binutilsは、アセンブラやリンカなど、各種プログラミング言語に共通のツール類です。gccはおなじみのCコンパイラです。
まずは適当なGNUのサイトから、binutilsとgccをダウンロードしてください。binutilsは本稿執筆時点での最新版である「binutils-2.21」がいいでしょう。gccはバージョン4系だといろいろと問題が発生する場合があるので、本稿では「gcc-3.4.6」を利用します。
binutilsは、以下の手順でビルドできます。
% tar xvzf binutils-2.21.tar.gz % cd binutils-2.21 % ./configure --target=h8300-elf --disable-nls % make % su # make install
「make install」を行うと、「/usr/local/h8300-elf/bin」に以下のファイルがインストールされます。確認してみてください。
% ls /usr/local/h8300-elf/bin ar as ld nm objcopy objdump ranlib strip
gccは、binutilsのインストール後に以下のようにしてビルドしインストールします。「--enable-languages」はC言語のみとし、C++は指定しません。このため、newlibなどのライブラリ類はインストール不要です。
% tar xvzf gcc-3.4.6.tar.gz % cd gcc-3.4.6 % ./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --enable-languages=c % make % su # make install
「make install」を行うと「/usr/local/h8300-elf/bin/gcc」が作成されます。
% ls /usr/local/h8300-elf/bin ar as gcc ld nm objcopy objdump ranlib strip
注意として、以下のものがあります。2番目と3番目については筆者のサポートページ(参考文献[3])で対処を紹介してありますので、参考にしてください。
binutilsやgccのビルドがうまくいかない場合には、ビルド済みのパッケージをインストールするという方法もあります。マイコンボードの付属CD-ROMに添付のパッケージを使ったり、GNU/LinuxのH8開発用パッケージをパッケージマネジャーでインストールするといったことが可能です。
また、インターネット上のコンパイルサーバを利用するといった選択肢もあります。これは筆者が運用しているサーバで、ソースコードをサーバにメール送信すれば自動コンパイルして返信してくれるというものです。これを利用すれば開発環境を構築することなく開発が可能になります。
これらについては幾つか注意点もありますので、詳しくは参考文献[3]の「開発環境がうまく構築できない場合の注意」を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.