マイコンメーカー各社は、マイコンの評価ボードを使いやすくするために工夫してきた。USBでPCにつながるようになっていて、開発ツールも付属するものが多い。しかし、それでも使いやすいとは言いにくいのが現状だ。
マイコンメーカー各社は、マイコンの評価ボードを使いやすくするために工夫してきた。USBでPCにつながるようになっていて、開発ツールも付属するものが多い。登録ユーザー向けに無償ダウンロードで開発ツールを提供するメーカーもある。しかし、それでも使いやすいとは言いにくいのが現状だ。
使いやすくないのは、面倒な作業が幾つか残っているからだ。まず、開発ツールをPCにインストールしなければならない。自分のPCのOSに開発ツールが対応していない場合は、PCを新たに用意するなどの面倒を強いられる。
開発ツールの環境が整ってもそれだけでは何もできない。マイコンを操作するには、適切なレジスタに適切な値を書き込む必要がある。適切な値を探すには、何百ページにもなるマイコンのマニュアルと格闘しなければならない。
プログラムができたら、開発ツールでコンパイルして実行ファイルを作成し、マイコン内部のフラッシュメモリに書き込む。このときは、専用のツールを使って書き込む必要がある。
このように、同じソフトウェア開発でも、PC向けソフトウェアやWebアプリケーションとは異なり、組み込みソフトウェア開発には面倒なことが付きまとう。
初心者だけでなく、経験豊富な開発者でも作業が煩雑であることに変わりはない。さらに、イーサネットを使うときや、USBで他の機器に接続したいなどの場合は、デバイスドライバソフトウェアをどこかから調達しなければならない。もちろんソフトウェアを自分で作成することも可能だが、多大な時間とコストが掛かる。
評価ボードにはプロトタイピングという用途がある。開発者が考えている機器を手早く試作するという用途だ。しかし、評価ボードの使い始めには面倒な作業が付きまとう。これではとても「手早く」作るとはいかない。
そこで、アームが開発したのが「mbed」だ(図1)。mbedは手早いプロトタイピングを可能にする評価ボードである。価格は6000円前後。NXPセミコンダクターズのマイコン「LPC1768」を搭載している。LPC1768はアームが開発した「Cortex-M3」をコアに採用したマイコンだ。
mbedは「いかに早く、実際に動くものを作れるか」ということを重視して開発された。組み込み開発の経験が豊富な開発者なら、プロトタイピングに掛かる時間を短縮できる。まだ組み込み開発に慣れていない開発者や初心者も、アイデアを簡単に具現化できるというメリットを感じられるものになっている。
mbedの最大の特徴は、開発ツールを開発用PCにインストールする必要がないという点にある。コンパイラなどの開発ツールは、インターネット上のサーバにそろえてあるのだ。Webブラウザでこのサーバにアクセスすると、統合開発環境のような画面が現れる(図2)。この画面でコードを編集して、コンパイルの指示を出せば、サーバ側でプログラムをコンパイルするようになっている。
コンパイルが完了すると、自動的に実行ファイルがダウンロードされる。自分の作成したコードはサーバ側に保存されるので、Webページを開きさえすればいつでもコードを参照、編集できる。つまり、mbedを使うために必要なものは、Webブラウザが動作するPCだけということだ。
ハードウェアの操作を肩代わりするライブラリがそろっている点も大きな特徴だ。冒頭で説明したように、一般的な評価ボードを使う場合はマイコンのマニュアルを参照して、適切なレジスタに適切な値を書き込むという手法を採る。一方、mbedではレジスタ操作を代行するライブラリがそろっている。
ライブラリは、C++言語で記述したクラスの集合体で、「AnalogIn」や「AnalogOut」、「I2C」、「Ethernet」など、一目でどの機能を操作するものかが分かるようになっている。使い方を覚える労力はそれほど必要ない。このライブラリの詳細はmbedのWebサイトにあるハンドブックにまとめられている。
mbedのWebサイトにあるのは、公式のライブラリだけではない。全世界の開発者が作成した独自のライブラリも利用できるようになっている。例えば、液晶パネルやSDメモリーカード、USB、TCP/IPといったプロトコルを操作するライブラリなどが公開されている。
mbedのWebサイトは、開発ツールを提供するだけでなく、ユーザーの成果を共有できる仕組みや、お互いの意見を交換するためのフォーラム、さらに公開したプログラムやライブラリの解説などを記述して公開するノートブックページも提供している。作ったプログラムやライブラリを公開して意見を求めれば、さらに改良していくためのヒントが得られたり、問題点を共同で解決していくことも可能だ。
利用したいライブラリが見つかったら、そのまますぐに自分の開発環境にインポートして試してみることができる。全ての開発者が同じ開発環境を使うので、開発環境のバージョンの違いでコンパイルが通らないなどの問題で悩むことはない。
このようなコミュニティーから生まれたライブラリの解説はmbedのWebサイトにあるクックブックなどで確認できる。
ちなみに、サーバ上で動作しているコンパイラはアームの「RealView」だ。必要があればレジスタやメモリの特定部分に値を書き込むことや、インラインアセンブラを使うことも可能である。
コンパイルしてPCにダウンロードした実行ファイルは、基板上のフラッシュメモリに書き込んで動かす。従来の評価ボードでは専用のデバッグプローブやシリアルインタフェースなどを使って実行ファイルを書き込んでいた。
mbedではこの点でも「インストール不要」の考えを貫いている。mbedをPCに接続すると、ストレージデバイスとして見える。このストレージへ実行ファイルをドラッグアンドドロップでコピーするだけで、実行の準備が完了するのだ。
プログラムを実行する基板は、40端子のDIPに似た小さなモジュール基板になっている。余計なコネクタやジャンパなどを排しているので、ボード上でジャンパなどの細かい設定をする必要もない。そして、2.54mmピッチのDIPの形状とすることでブレッドボードやユニバーサル基板などに容易に接続できるようになっている。独自に用意した基板や実験回路で拡張しやすいということだ。
先に説明したように、この基板が搭載しているマイコンはNXPセミコンダクターズのLPC1768。動作周波数は96MHzで、512Kバイトのフラッシュメモリや64KバイトのSRAM、USB、イーサネットなどの接続機能も備えている。基板上にはイーサネット物理層のチップもあるので、パルストランスが入ったRJ45コネクタを接続するだけでネットワークにつなぐ準備が整う。図3はmbed基板の端子の配置を示したものだ。幾つかの端子は複数の機能を持つため、切り替えて使う。
Copyright © ITmedia, Inc. All Rights Reserved.