PR
松岡正人(まつおか まさと)

 マイクロソフト モバイル&エンベデッドデバイス本部エグゼクティブプロダクトマネージャ。

 前回,組み込み開発と一般的なIT開発の違いについて考えてみました。両方の世界でプログラミングを経験した立場から言えるのは,組み込みだからこそやらなければならないことはあるものの,仕様や要求を満たしたシステム*1を開発するという目的は共通です。どうやって実現するかはノウハウやスキルに依存する問題だと言い切れます。

 ですから,適切な経験さえ積めば,JavaやC++でPCアプリケーションしか書いたことがないという方でも,組み込み開発は可能なのです。とはいえ,どうやって始めればいいのかわからないという方もいるでしょう。

 本格的に開発にかかわる前に少し試してみたいという場合,PCのアプリケーションであれば開発環境を手に入れれば,なんとなくコードを書いて,アプリケーションを作ってみるといったことができますよね。オープンソース系のツールはたいてい無償で入手できますし,商用のツールでも,評価版や機能を減らしたエントリー向けのエディションは無償で利用できる場合があります。例えば,マイクロソフトのVisual Studio(VS)2005の評価版は,インストール後90日(または180日)間フル機能を使えるので,ちょっと試すには十分でしょう。

 同じように,組み込み開発環境にもお試し版があります。Windows Embedded CEでは,Platform Builderというツールがあり,Webサイトから評価版を入手できます。

 ちょっと毛色の変わったところでは,レゴ社のMINDSTORMS(マインドストーム)という,ロボット工作とプログラミングを学べる学習教材(玩具)があります。おもちゃと言ってもあなどれません。最新のNXTというモデルは,48MHzで動作する32ビットARM*2プロセサを搭載しており,Bluetoothなどのインタフェースを装備しています。音声入力用のマイクや,光センサーなどの部品も組み合わせて使うことができます。

 NXTの一世代前のRCXでも,ルネサステクノロジ社製のH8というCPUを搭載しており,CやJavaなどで制御アプリケーションを開発してロボットを動作*3させることができます。趣味で組み込みの世界を味わいたい方にはお勧めです。

 ここでは,Windows Embedded CEの評価版を使って,組み込み開発を試してみたいと思います。

 まず,Windows Embedded CE 6.0 評価版と,VS 2005 Professional 評価版をそれぞれダウンロードします。

 先にVS 2005をインストールしてから,CE 6.0をインストールします。セットアップの手順についてはここでは省きますが,インストール・ウィザードにしたがってインストールすればOKです。CE 6.0については,日本語の書籍*4も発売されているので,評価しやすいと思います。

 なぜCEが便利化というと,環境を無償で入手して評価できることに加えて,ひとまずハードウエアがなくとも,エミュレータを使って試すことができるからです(図1)。

図1●ARMプロセサのエミュレータ。CE 6.0をインストールするとVS 2005から起動できる
図1●ARMプロセサのエミュレータ。CE 6.0をインストールするとVS 2005から起動できる
[画像のクリックで拡大表示]

 これでハードウエアがなくても組み込みアプリケーション開発を体験できます。ここでは,デバイスドライバやブートローダーなどのハードウエアとのインタフェースとなるコードは必要としないからです。

図2●CEのアプリケーションとして“Hello World!”を開発しているところ
図2●CEのアプリケーションとして“Hello World!”を開発しているところ
[画像のクリックで拡大表示]

図3●ARMプロセサはPDA(携帯情報端末)などに搭載されている
図3●ARMプロセサはPDA(携帯情報端末)などに搭載されている
図4●PCの中で,PDAや携帯電話が動作するイメージ
図4●PCの中で,PDAや携帯電話が動作するイメージ
 
図5●Java MEのエミュレータは,シェルとして携帯電話を模したグラフィックスが用意されている
図5●Java MEのエミュレータは,シェルとして携帯電話を模したグラフィックスが用意されている
[画像のクリックで拡大表示]

 図2は,いわゆる「Hello World!」アプリケーションを作っているところです。テンプレートで用意されているので,簡単に試すことができます。実際にやってみると,今どきのリアルタイムOS(RTOS)とその開発環境は,PC用のアプリケーション開発とそれほど変わらないことに気づくでしょう。

 ただし,本質的な違いは理解しておきましょう。それは,ここで試すことができるアプリケーションは,x86アーキテクチャのプロセサでは動作しないことです。あくまでエミュレータ上で動作しているのであり,実際にはARMプロセサ向けのアプリケーションです。

 皆さんが一般的に使っているパソコンには,ARMプロセサは搭載されていません。ARMプロセサを搭載しているのは,図3のようなPDA(携帯情報端末)や携帯電話です。エミュレータを使うと,これらをPCの上で動かすことができます(図4)。

 同様なものはJavaでも用意されています。PDAや携帯電話といった小型端末向けのJava ME(Micro Edition)の開発キット*5には,Java MEアプリケーションの実行環境としてPC向けのエミュレータが用意されています。携帯電話でアプリケーションを作るのではなく,PC上で開発するための実行環境です(図5)。

 他にも多くのメーカーから,同様にPC上でアプリケーション開発ができる環境が提供されているので,自分のスキルや言語,または興味の対象に合わせて試してみてください。

 ちょっと自分の時間を削って,あるいは仕事の中で,こうしたツールをつかって,PCとは違う組み込みアプリケーション開発を体験してみましょう。最初のうちは,組み込み開発の技術的に難易度の高いところに触れることなく,普通にコードを書いて,アプリケーションを作れば良いでしょう。

 SDKなどに含まれているドキュメントや関連書籍のほかに,インターネットには様々な技術情報があふれていますので,それらをうまく使って,効率よくコツをつかみんでください。ここまでは誰でもできると思います。

 次回は,皆さんが今まで培ってきたIT系の開発のスキルやノウハウを,どのように今どきの組み込み開発で活かすことができるかをお話したいと思います。