カサル マヘシュ 大場 孝仁 岩崎 平 カサル マヘシュ(左):タタコンサルタンシーサービシズ(TCS)ジャパン株式会社
大場 孝仁(おおば たかひと/中央):横河ディジタルコンピュータ株式会社
岩崎 平(いわさき たいら/右):安川情報システム株式会社


 パソコン上で動かすアプリケーションプログラムを作るとき、そのOSは既にできあがったものを使います。たとえばWindows上で動かすアプリケーションを開発するなら、既に製品として提供されているWindows VistaやWindows XPを使うでしょう。

 ところが組み込み開発では、アプリケーションを開発する前に、まずその下で動くOSを構築しなければなりません。その理由は、本連載の「第2回 組み込みOSとWindows Vistaはどう違う」で説明したとおり、様々な組み込みデバイスの個々の条件に合ったOSが必要だからです。

 そのため組み込み開発では、OSもアプリケーションのように「ビルド」して「デバッグ」しなければなりません。これは、パソコン用のアプリケーション開発にはない、組み込み開発特有のプロセスです。今回はWindows Embedded CE 6.0を使ったOSのビルドとデバッグの概要について説明します。

OSの開発環境はVisual Studioを使う

 “OSを作る”と聞くと、さぞたいへんな作業だろうと思われるかもしれません。たしかに、組み込み機器を制御する要となるOSを作るのですから、機器の機能や性能を左右する重要な作業です。しかしWindows Embedded CE 6.0には、この作業を簡単に行うための様々な仕組みが用意されています。

 OSを構築するときは、アプリケーション開発と同様、IDE(統合開発環境)であるVisual Studioを使います。開発環境を作るには、まずWindows XPやWindows Vistaなどが動いているパソコンにVisual Studioをインストールし、さらにそこにWindows Embedded CE 6.0をインストールします。そのときに、Windows Embedded CE 6.0のプラグインである「Platform Builder」(プラットフォームビルダ)も一緒にインストールします。このPlatform Builderが、OSを構築するツールです。

 ここまでインストールしたうえでVisual Studioを起動すると、図1のような画面が表示されます。これが実際にOSを構築する開発環境です。

図1●Platform Builder用に最適化されたVisual StudioのIDE
図1●Platform Builder用に最適化されたVisual StudioのIDE
[画像のクリックで拡大表示]

 これを見てもわかるとおり、Visual StudioがPlatform Builder用に最適化されていますのでメニューなどに若干の違いはあるものの、アプリケーション開発で見慣れたVisual Studioの画面とほとんど同じです。Visual Studioでパソコン用のアプリケーション開発をしていた人がこれから新たに組み込み開発を始める場合、違和感が少なくて始めやすいと思います。

マウスでチェックしていくだけで必要な機能が組み込める

 OSは、次の手順で構築します。

(1) OSイメージをデザインする
(2) OSイメージをカスタマイズする
(3) OSイメージをビルドする

(1) OSイメージをデザインする

 まず、これから開発しようとするデバイス(ターゲットデバイス)に必要な機能を検討し、そのベースとなるOSイメージをデザインします。ターゲットデバイスにはどんなコンポーネントやモジュールが必要なのか、たとえばブラウザを使うのか、TCP/IPは必要か、などを判断して、そのデバイスに適したOSイメージを作ります。

 Windows Embedded CE 6.0でこの作業を行うときは、Visual Studioから「Windows Embedded CE 6.0 OSデザインウィザード」を起動します。ウィザードの指示に従ってマウスで選択していけば、必要なコンポーネントやモジュールが組み込まれます。図2はWindows Embedded CE 6.0 OSデザインウィザードの画面の1つで、ネットワーク関係のコンポーネントを選択する画面です。既にこれだけのコンポーネントが用意されているので、たとえばTCP/IPが必要な場合でも、プロトコルスタックを自分で開発して組み込んだりする必要はありません。

図2●Windows Embedded CE 6.0 OSデザインウィザードで必要な機能を選択する
図2●Windows Embedded CE 6.0 OSデザインウィザードで必要な機能を選択する
[画像のクリックで拡大表示]

(2) OSイメージをカスタマイズする

 ベースとなるOSイメージがデザインできたら、次は、ターゲットデバイスの機能に合わせてOSをカスタマイズします。この作業は、Visual Studioの左側のペインにある「カタログ項目ビュー」で行います。

 図3に示すように、カタログ項目ビューでコンポーネントのチェックボックスをオン(またはオフ)にすると、そのコンポーネントがOSの構成に追加(または削除)されます。項目を追加すると、その機能に必要な依存関係のある機能も自動的に追加されます。たとえば、[インターネットブラウザ]で[Internet Explorer 6.0]を追加すると、[Internet Explorer ブラウザコントロールボックス]などが自動的に追加されます。

図3●カタログ項目ビューでOSイメージをカスタマイズする
図3●カタログ項目ビューでOSイメージをカスタマイズする
[画像のクリックで拡大表示]

(3) OSイメージをビルドする

 必要なコンポーネントやモジュールを組み込んだOSイメージができたら、次にそれをビルドします。ビルドするには、Visual StudioからGUIで行う方法とコマンドラインで行う方法がありますが、ここではGUIで行う方法を紹介します。

 図4はVisual Studioの[ビルド]メニューです。通常のアプリケーション開発でビルドする時は[ソリューションのビルド]を使いますが、Windows Embedded CE 6.0のOSをビルドする時は[詳細なビルドコマンド]にあるコマンドを使用します。これらはPlatform Builder専用のコマンドで、Platform Builderをインストールした時に、Visual Studioに自動的に追加されます。

図4●Visual StudioでOSをビルドする時のコマンド
図4●Visual StudioでOSをビルドする時のコマンド
[画像のクリックで拡大表示]

 必要に応じてこれらのコマンドのいずれかを使ってビルドします。ビルドには、通常のアプリケーション開発と同様に、製品出荷用の「リリースビルド」と開発用の「デバッグビルド」があります。次節で説明する「OSのデバッグ」を行うためには、ここでデバッグビルドをしておく必要があります。

 ビルドしてできたOSを、OSの「ランタイムイメージ」と呼びます。ターゲットデバイスにダウンロードして実行するのは、このランタイムイメージです。実際にはもう少し細かい作業もいろいろありますが、OSを構築する基本的な作業は、上記のとおりです。

 このように、Windows Embedded CE 6.0ではOSに必要な機能の多くが既に用意されているので、開発者はそれをマウスで選択していくだけで必要な機能を備えた組み込みOSを構築できます。