次の方法で共有


Microsoft Windows CEの組み込み開発

Kimberly Gregory, Group Program Manager
Windows CE Product Unit, Microsoft Corporation

1998年4月

はじめに

Microsoft(r) Windows(r) CEは、メモリ占有量の小さい、高度にカスタマイズが可能なオペレーティング システムであり、先進の32ビット組み込みシステムのためにゼロから設計されています。Windows CEは、組み込み用途にとって必要不可欠なパフォーマンスと効率を提供します。Windows CEは、予測可能で制限付きの待ち時間を保証し、MIPS、PowerPC、ARM、SH、x86系の強力な32ビット マイクロプロセッサを広範囲に渡ってサポートします。

1996年9月に発表されたHandheld PCは、Windows CEの能力を活用した最初のデバイス群でした。それ以降、Microsoftと世界各国の製造業や消費者家電業界のパートナーは、Handheld PC version 2.0、Palm Sized PC、Auto PCなど新しいデバイスや製品カテゴリに着手してきました。組み込みシステムのカスタマーとメーカーは、Windows CEを採用し、インターネット対応のセットトップ ボックスや「Webフォン」などのエンターテイメントとマルチメディア製品の分野にWindows CEを応用してきました。またWindows CEは、データ取得デバイスや店頭(POS)端末、工業用コントローラをはじめとする従来の組み込み用途でも使用されています。

Windows CEが新しい市場とデバイス分野に拡張するのに合わせて、Microsoftもまた、組み込み開発の工程を単純化するというWindows CEの主要な目標の1つを達成すべく、前進を続けています。この目的を達成するために、Windows CEはWin32 API(世界で最も広く使われているプログラミング モデル)を採用しています。Windows CEツールキットは、Microsoftデスクトップ製品開発者のこれまでの技術に対する投資を活かす形でWin32開発をサポートします。ツールキットは、Java、Microsoft Visual Basic(r)、C、C++に対するWindows CEサポート機能を、Microsoft Developer Studioのアプリケーション短期開発環境へシームレスに統合します。

Embedded Reviewの1997年9月号では、Windows CE version 2.0と、Windows CE組み込みシステム開発の単純化に役立つMicrosoftによるツールのセットが発表されました。

この号では、まもなく登場するversion 2.10の機能とWindows CEツールキットに対する拡張と強化に重点を置きながら、Windows CEとその開発ツールのアーキテクチャ、機能、操作を取り上げます。Component Object Model(COM)とActiveXコントロールのサポートや、Microsoft Foundation Classes(MFC)およびActive Template Library(ATL)を使用した開発のサポートなど、いくつかの重要な点については、さらに詳しく解説します。MFCとATLを使用したWindows CEのための開発の詳細については、Peggi Goodwinによる「Windows CE対応Microsoft Foundation ClassライブラリとActive Template Library」を参照してください。

Windows CEアーキテクチャ

Windows CE(図1)のアーキテクチャは、このオペレーティング システムの主要な設計目標、つまりフットプリントを小さく保ち、ROMからインプレース実行(XIP)がででき、Win32(r) API標準に従い、各種のマイクロプロセッサ ファミリに移植しやすくし、広範囲にわたる組み込みシステムを構築するために必要な機能を提供する、といった目標を反映しています。

Windows CEは、高度にモジュール型の設計と、モジュールをユニークな形で結合できる「コンポーネント化」のモデルを通じて、小さなフットプリントを保証します。Windows CEは、さまざまなオペレーティング システムのサービスを実装した一連のモジュールとコンポーネントのセットとして出荷されています。例えば、各Windowsコントロール(EditコントロールやButtonコントロールなど)に対応するコンポーネントが個別にあります。またグラフィックス デバイス インターフェイス(ビットマップ、パレット、印刷、Device Contextなど)の機能にについても個別のコンポーネントがあります。OEM業者は、これらのコンポーネント群からコンポーネントを選択し、オペレーティング システム サービスの固有の組合せを作成します。各組合せ、あるいは「コンフィギュレーション」には、作成する組み込みシステムに必要な機能だけを含めればよいのです。Windows CE Embedded Toolkit for Visual C++ 5.0には、コンポーネントを結合するさまざまな方法を示すサンプル コンフィギュレーションが複数含まれています。例えば、グラフィックス表示はサポートするがウィンドウ マネージャはサポートしないコンフィギュレーションや、カーネルと通信スタックだけがあり、グラフィックスやウィンドウ機能のない最小限のコンフィギュレーションなどがあります。

新しいオペレーティング システム機能は、コンポーネントとして実装されるので、将来のWindows CEデバイスが現在のフットプリントを維持できる一方で、必要に応じて新しい機能もデバイスに追加できます。

Windows CEは、Windows互換のAPIとプログラミング モデルをサポートしています。Microsoft Win32(r)の開発パラダイムを維持することで、開発者はWindowsで培った知識と技術をWindows CEにまで広げることができます。Windows CEは開発言語に依存しないので、開発者は組み込みアプリケーションに合ったプログラム言語を選択できます。

Windows CEカーネルとOEM抽象レイヤ(OAL)には、移植性をサポートするためにゼロから設計されています。version 2.0の時点で、Windows CEは以下のCPUファミリをサポートしています:AMD ElanSC400、Hitachi SH3、Intel i486 DXとPentium、Motorola PowerPC 821、NEC VR4102、Philips PR31500、Toshiba TX3912。version 2.10ではさらに、Digital SA-1100、ARM 720T、Hitachi SH4、IBM PowerPC 403GC、NEC VR4111、VR4300もサポートされます。これら以外のCPUファミリもWindows CEを実行できる可能性はありますが、Microsoftのテスト ラボでの動作確認がまだなされていません。

図1:Windows CEアーキテクチャ

カーネルとOEM抽象レイヤ

Windows CEカーネルは標準のWin32プロセスとスレッド モデルをサポートし、8つの優先順位レベルを持つラウンドロビン方式の、優先度ベースのスレッド スケジューリングを提供します。カーネルはスレッド数無制限のプロセスを最大32個までサポートし、ミューテックスや名前付きイベント、WaitForMultipleObjectを含む広範囲にわたる同期化プリミティブを実装します。カーネルはROMからのXIP、メモリ マップド ファイル、デマンド ページングをサポートします。最大限のパフォーマンスが必要なプロセスは、メモリ内にロックをして、デマンド ページングの対象からはずすことができます。カーネルは、待ち時間が短かくなるように設計されているため、多くのリアルタイム アプリケーションでの使用に適しています。version 2.10では、サポートされているほとんどのプロセッサについて、測定機能付きのカーネルがサポートされており、GetThreadTimeも追加されているため、OEM業者や組み込み製品開発者は、組み込みデバイス上で動作するWindows CEのパフォーマンスのプロファイルを得ることができます。

OALはカーネルとデバイス ハードウェアの間にインターフェイスを提供する薄いコードのレイヤです。OEM業者は、提供されるカーネル コンポーネントを使用します。このコンポーネントは、デバイス ハードウェアで使用されているサポート済みのマイクロプロセッサ向けに調整されています。OEM業者は、ハードウェア固有のパワー マネージメント機能、シリアル ポートとパラレル ポート、割り込み処理機能、リアルタイム クロックとインターバル タイマーを実装します。タイミングをさらに細かく制御したいデバイスの場合、OEM業者はQueryPerformanceFrequencyとQueryPerformanceCounter機能を実装できます。Windows CEのパワー マネージメント機能には「インスタント オン」機能があります。これにより、デバイスに不揮発性(バッテリバックアップ型)RAMがあれば、Windows CEデバイスの電源を切った後もすぐにオンの状態に戻せます。OEM業者は、OALのパワー マネージメント機能を使って、オペレーティング システムが「完全なオン」状態から「スタンバイ」状態、最終的には「サスペンド」状態へと遷移するのに連動して、不要なハードウェア コンポーネントをオフにできます。

オブジェクト ストア

「オブジェクト ストア」は現在Windows CEで使用できる3つのデータ記憶域のことで、ファイル システム、Windows CEプロパティ データベースそれにレジストリを指します。

Windows CEは、ROMベースのファイル システム、RAMベースのファイル システム、それにATAデバイス、フラッシュ メモリ、SRAMカード用のFATファイル システムの3タイプのファイル システムを提供します。さらに、組み込み開発者は代替のファイル システムを作成、登録できます(version 2.10ではこれがさらに簡単になりました)。どのファイル システムにもWin32のファイル システムAPIを通じてアクセスします。

Windows CEのデータベース機能は小さく効率的なストレージ用に最適化されており、Win32のデータベースAPIのどれにも対応しません。Windows CEのデータベースは、プロパティ セット レコードの格納、アクセス、ソート機能を提供します。version 2.10では、データベースはマウントされた任意のファイル システムに置くことができるので、データベースを恒久性のある記憶媒体に置くことも可能です。

Windows CEのレジストリはWin32のレジストリ機能をエクスポートします。これは、ランタイム データや他のデータを記録したり、アクセスしたりするために、アプリケーションとシステムによって使用されます。レジストリはシステムの初期化に使用され、常にRAMになければなりません。version 2.10では、レジストリを恒久性のある媒体からロードしたり、そこに格納したりできます。オブジェクト ストアの全データは、バックアップ バッテリのあるHandheld PCなどのシステムでは、主電源断による予期不能なリセットから保護されています。オブジェクト ストアへの書き込み中にリセットが生じた場合、Windows CEは、システムが再起動したときに書き込み処理を完了させたり、中断前の最後に記憶されている正常な状態に戻ることによって、ストアが破損しないようにします。

グラフィックス、ウィンドウ マネージャ、イベント マネージャ

Graphics, Window Manager, and Event Manager(GWE)には、Windowsの核となる機能のほとんどが含まれます。これはオペレーティング システムの最も高度にコンポーネント化された部分であり、OEMは各種機能を細かく取捨選択できます。GWEは一般に、UserとGDIという、Windowsデスクトップの同等のものを表す用語を使って表現されます。Userは、GWEの中でも、メッセージ、イベント、そしてキーボードとマウスあるいはスタイラスからのユーザー入力を処理する部分を指します。GDI(graphics device interface)は、GWEの中でも、グラフィック出力にかかわる部分を指します。

Userは、主要なWin32ユーザー インターフェイス機能、すなわちウィンドウのオーバラップ、イベント管理、ユーザー インターフェイスのコントロール、ダイアログ ボックス、プロセス間通信、カスケード メニューなどの機能をエクスポートします。Userはまた、国際化に必要な機能であるUNICODE文字列操作と各国語対応(NLS)機能も提供します。version 2.10では、アジアの文字入力方式とフォントをサポートするために、GWEが拡張されています。

GDIは、24ビット フル カラー、ビット デプス非依存性、それにフォアグラウンド アプリケーションがシステム パレットを制御するパレット モデルをサポートします。GDIは、1ピクセルあたり1ビット、4ビット、8ビット、16ビット、24ビット、32ビットのWindows形式ビットマップ間のblit処理もサポートします。拡大縮小や回転が可能なTrueTypeフォントも完全にサポートします。また、すべての標準ラスタ操作(ROP)コードもサポートしており、広範なビットマップ操作機能を提供します。シリアル接続と赤外線通信接続を通じた印刷もサポートし、version 2.10では、さらにパラレル接続とネットワークを通じた印刷もサポートします。

デバイス ドライバ、デバイス マネージャ

Windows CEは、キーボードやマウス デバイス、タッチ パネル、シリアル ポート、イーサネット、モデム、USB(Universal Serial Bus)、オーディオ プロセッサ、スピーカ、パラレル ポート、ATA(Advanced Techonolgy Attachment)、フラッシュ型媒体など、さまざまなデバイスを直接サポートします。組み込み開発者は、新しいデバイス タイプを簡単に追加できます。

Windows CEには、サポートしているすべてのデバイス ドライバについて、厳密に定義されたデバイス ドライバ インターフェイス(DDI)のセットと、実装方法を示すサンプル コードがあります。ドライバは、システムの中で通常のプロセスとして実行され、オペレーティング システムのすべてのサービスにアクセスできます。このアーキテクチャにより、一般的にデバイス ドライバを「起こす」割込みサービス ルーチンを単純で高速なものにできます。ドライバのスレッドがほとんど処理をします。

ユーザー入力とグラフィックス ドライバは、GWEがロードします。その他のデバイス ドライバはすべて、デバイス マネージャが制御します。デバイス マネージは内蔵ドライバ(イーサネットやシリアルなど)とインストール可能なドライバ(ハードウェア挿入イベントに応答してロードされるカード型のストレージやモデム ドライバなど)の両方を制御します。

Windows CEは、Windows PC Card(従来のPCMCIA)とSocketサービスのサブセットを提供し、ワイヤレス モデムや回線モデム、フラッシュ メモリ カードなどのPC Cardを使用できるようにします。OEM業者がこれらのインターフェイスを自社のカードで使用できるだけでなく、ほかのサードパーティ ハードウェア開発者や組み込み開発者が、自分たちのPCカード デバイス用にインストール可能なドライバを書くこともできます。これらのデバイスは、VGAカードからGPS(Global Positioning System:汎地球測位システム)に至るまで、あらゆるデバイスが対象となります。

Windows CEはまた、同じPC Cardインターフェイスで、MinicardやCompact Flash(CF)標準など、ほかのフォーム ファクタのプラグイン カードもサポートします。version 2.10では、ISA Ethernet、パラレル ポート、USBなどのデバイスのほかに、リニア フラッシュで使用されるフラッシュ トランスレーション レイヤもサポートされています。

通信

Windows CEは、Windows CEデバイスがインターネット、ローカル エリア ネットワーク(LAN)、デスクトップのWindowsコンピュータ、他のWindows CEデバイス、そしてプリンタなどの赤外線対応デバイスと通信できるようにする複数の通信方式をサポートします。これらの選択肢の中には、標準のWin32シリアル機能、Win32テレフォニーAPI(TAPI)、Remote Access Service(RAS)、Windows Sockets機能が含まれます。また、各種の赤外線対応デバイスと簡単に通信できるようにするWindows Socketsの拡張機能も使用できます。

Windows CE Communicationsは、HTTPとFTPをサポートするためにWinINET APIをサポートしています。またシリアル ネットワーキングのためにPPPとSLIPもサポートします。Windows CE Communicationsはまた、リモートに対するpingをプログラムから実行できるようにするICMP(Internet control message protocol)機能もサポートしています。安全な通信を確保する手段として、Secure Socket Layer 2.0と3.0、そしてPCT 1.0プロトコルが提供されます。version 2.10では、Crypto 1.0 APIも公開されています。

CommunicationsはSMBリダイレクタとWin32 Windows Networking(WNet)によるリモート ファイル システムへのアクセスをサポートします。これには、LAN接続のためにEthernetミニポート ドライバをサポートするNDIS(Network Driver Interface Specification)4.0が含まれています。また、ネットワークPC Cardのプラグ アンド プレイサ機能もサポートします(注意:リダイレクタとNDISは、互いに独立しています)。

Windowsベースのデスクトップ システムは、Remote Connectivityを通じてWindows CEベースのデバイス上にあるデータにアクセスできます。デスクトップ システムは、リモートAPIを通じて、デバイスのオブジェクト ストアにアクセスして更新したり、デバイスを対象にプロシジャを実行したりできます。

Windows CEデスクトップ

Windows CE Desktopは、シェル サービスを実装するコンポーネントの集まりです。これらのコンポーネントを使用して、組み込みデバイスの要件や設計上の制約に適合するシェルを構築することができます。

Desktopは背景描画、デスクトップ ビットマップのサポート、バッテリー残量警告の処理、そしてアプリケーションを切り替えるためのタスク マネージャを扱います。また、共通のコントロールやダイアログ、コントロールパネルとアプリケーション、通信接続機能、デスクトップAPI、コンソールに対するサポート機能(コマンド プロセッサを含む)なども含まれています。

2.10の機能

version 2.10の強化機能と新機能を以下にまとめます。

カーネル ARMファミリとSH4ファミリに移植されている。システム コンポーネントは、メモリ空き容量低下の通知を受け取れる。GetThreadTimeと、サポートされている大半のプロセッサに対応する計測機能付きのカーネルを通じたプロファイリングが可能。Crypto 1.0(Win32データ暗号化API)をサポートする。追加のOLE API(CLSIDFromProgID、GetClassFile、ReleaseStgMedium)も公開する。
オブジェクト ストア FAT32、インストール可能なファイルシステム、非ページング デバイスに対するファイルのマッピングをサポートする。プロパティ データベースは、マウントされている任意のファイル システム上に置けるので、不揮発性の媒体上でのデータベース アクセスと更新が可能。レジストリはRAMに置かなければならないが、不揮発性の媒体にバックアップできる。
GWE アジアのフォントと文字入力方式をサポートする。これには、Input Method Manager、Soft Input Panel(キーボードを使わないデバイス用)、FEフォントの改行、TrueTypeフォントのサポート(EUDC、TTC、フォント リンク)などが含まれる。DeferWindowを使ったオフ スクリーン描画の最適化により、メッセージ ボックスとツール チップのカスタマイズが可能。パラレル接続およびネットワーク接続での印刷をサポートする。
各国語対応 Windows CE 2.10は英語(世界共通)、日本語、ドイツ語、フランス語、イタリア語、スペイン語、ブラジルのポルトガル語、オランダ語、スウェーデン語の各国語に対応している。各国語に対応したOSを構築しやすいように、ビルド プロセスが改善された。
通信 FastIRおよびIPマルチキャスト機能をサポートする。
デバイス ドライバ I/Oマップ型のプラットフォームとメモリ マップ型のプラットフォームの違いをドライバが意識しなくてもいいように、抽象化のための下位レベル関数が追加された。PCベースの開発システムに、PCMCIA、ISA Ethernet、パラレル ポート、SoundBlaster互換のオーディオ、ホストUSB(OHCI)などのデバイスを追加する。PCMCIA、Miniature Card、M-Systems Disk on Chipのリニア フラッシュをサポートするフラッシュ トランスレーション レイヤを追加する。
デバッグ PPSHツールを拡張し、Ethernetとシリアル(PPSHは「CESH」に名称を変更)をサポートする。

COM、ActiveXコントロール、Windows CE

Component Object Model(COM)の技術は、オブジェクト指向プログラミングの利点と、バイナリの再利用性、言語非依存性、バージョン管理能力、自己登録機能、ライセンス取得のしやすさを兼ね備えます。ActiveXコントロールは、小型、高速、軽量で、リソースの使用効率がよいので、Windows CEベースのプラットホームにたいへんよくなじみます。

ActiveXコントロールや他のCOMコンポーネントを使用することで、Windows CEアプリケーションは、サイズや速度の面で妥協することなく現在使用可能な最先端のコンポーネント技術を活用することができます。ActiveXとCOMを使えば、アプリケーションを高度にモジュール化できるだけでなく、スケーラブルでバージョン管理が可能な堅牢なものにでき、Windows CE、Microsoft Windows NT、あるいはインターネット上で動作せることができます。ActiveXの仕様は、ジャスト イン タイム アクティベーション、アクティブでないときのマウス操作、ちらつきのないアクティベーション、ウィンドウレス アクティベーション、クリップされないデバイス コンテキスト、最適化された描画をサポートします。

Microsoft Windows CE Toolkit for Visual Basic(r) 5.0とMicrosoft Windows CE Toolkit for Visual C++ 5.0はどちらもActiveXコントロールの使用に対応しており、ActiveXコンテナを作成するための優れたツールを提供します。Windows CE Toolkit for Visual C++ 5.0は、ActiveXコントロールを作成するための3つのオプションを提供します。標準のWindows CE SDK OLE API、Microsoft Foundation Class Library for Windows CE、あるいはActive Template Library for Windows CEの3つです。

Windows CEにおけるCOMとActiveXのサポート

Windows CEは、デスクトップWindowsプラットホーム上でサポートされている標準のCOM機能のほとんどをサポートします。違いの1つは、Windows CEはフリー スレッド コンポーネントだけをサポートする点です。アパートメント スレッドとシングル スレッド モデルはサポートしていません。また、Windows CEのリアルタイム処理に特化しているので、インプロセスCOMサーバーだけをサポートすることになります。プロセス外サーバーやWindowsサービスに関わるオーバヘッドを発生させないためにこのようになっています。

現在Windows CEは、非同期式のモニカやストレージはサポートしていません。Windows CEでは、アプリケーションがVARIANTを渡すことはできませんが、VARIANT*を渡すことはできます。

Microsoft Foundation Class(MFC)library for Windows CEとActive Template Library(ATL)for Windows CEは、Windows CEプラットフォーム向けの堅牢で専門的なアプリケーション、コンポーネント、コントロールの構築を支援するために設計されたC++コードのライブラリです。

  • MFC : Microsoft Foundation Class Library(MFC)for Windows CEは、Windows CEのプログラムをC++で作成するための強力なクラス・ライブラリであり、完全なオブジェクト指向アプリケーション フレーム ワークです。
    MFC for Windows CEは、スタンドアローン実行形式とダイナミック リンク ライブラリ(DLL)をサポートしています。開発者はMFCを使って、簡単なダイアログ ボックス ベースのプログラムから、MFCのドキュメント/ビュー アーキテクチャを使用する強力で高度なアプリケーションに至るまで、あらゆるものを作成できます。またMFC for Windows CEを使って、フル機能のActiveXコントロールとコンテナも作成できます。

  • ATL : Active Template Library(ATL)for Windows CEは特別設計のC++テンプレート ライブラリで、可能な限り小さく速いActiveXコンポーネントの作成を支援するように設計、最適化されています。

    ATL for Windows CEは、ActiveXコントロールと他のCOMコンポーネントを作成するために特別設計されているので、自分のATLコンポーネントでは、プロジェクトに必要な特定のインターフェイスを実装するだけよいのです。このため、ATLを使って作成したコードは、MFCを使って作成したコードよりも速く、小さく、効率的です。

    ATLを使えば、小さく速く、より効率的なコンポーネントとコントロールを作成できます。しかし、ユーザー インターフェイスのあるコントロールを作成する場合は、MFCを選択するほうがよいでしょう。これはMFCの方がATLより発達しているためです。MFCは完全なコントロールのための機能をサポートしています。これはATLではサポートされません。詳細については、Peggi Goodwinによる「Windows CE対応Microsoft Foundation ClassライブラリとActive Template Library」を参照してください。

Windows CE Embedded Toolkit for Visual C++ 5.0

Microsoft Windows CE Embedded Toolkit for Visual C++ 5.0は、Windows CEオペレーティング システムの能力を、IDE(統合開発環境)、Win32ベースの充実したプログラミング インターフェイス群、サポートされているCPUファミリに対応するクロス コンパイラと結び付けます。Embedded Toolkitには、先進の32ビット組み込みアプリケーションを作成する上で必要なツールがすべて含まれています。また、低コストのプロトタイプ ターゲットとしてPCベースのハードウェア開発環境を使って、オペレーティング システムやツールを評価するために必要なツールもすべて含まれています。

これらのツールには、クロス コンパイラ、アセンブラ、リモート デバッグ ツール、オペレーティング システム ローダ、サンプルのデバイス ドライバとアプリケーション コード、すべてのオペレーティング システム バイナリ、そしてアプリケーションの作成や、組み込みシステムの条件に合わせてWindows CEをカスタム構成するために必要なツールが含まれています。

リモート開発ツール

リモート ツールは、リモート ターゲットを操作するホスト環境にビジュアルなツールを提供することで生産性を高めます。Debugger、Spy、Registry Editor、Object Store Viewer、Process Viewer、Memory Viewer、Heap Walkerなどのツールがあります。

Embedded Toolkit事始め

Embedded Toolkitには、いくつかの一般的なプラットホーム向けにOEM提供されているOALレイヤが含まれています。ほかの特定のターゲット プラットホーム向けのOALレイヤは、OEMや他のベンダから入手できます。現在のリリースには、コンポーネント化のためのツールとROMイメージ作成ツールがコマンド ライン アプリケーションとして含まれています。今後のリリースでは、これらのツールとDeveloper Studio IDEを統合して提供します。

プロトタイプのハードウェアがまだ使用できない開発サイクルの最初の時期は、Embedded Toolkitが動作するいくつかのリファレンス プラットホームのいずれかを使って、システム ソフトウェアの開発を始めることができます。Hitachi D9000 Development Systemなどに代表されるこれらの開発プラットホームは、構成を変えることができるようになっており、開発者は各種のターゲット プラットホーム機能をシミュレートできます。Windows CEカーネルと専用のWindows CEシステム生成ツールを使って、ターゲット プラットホーム用にオペレーティング システムをビルドします(Windows CEオペレーティング システム ソフトウェアは、開発目的のためにだけ提供されています。したがって、許可なく再配布できませんので注意してください)。最後に、Embedded Toolkitは比較的低価格なので、開発用だけでなく評価用にも購入できます。

サンプル アプリケーション

Embedded Toolkitは、数種のサンプル オペレーティング システム コンフィギュレーションと、C、C++、ATL、MFCを使った堅牢なサンプル アプリケーション群を提供します。Windows CEのプログラミング テクニックを理解する上で参考となるでしょう。オンラインのGetting Startedガイドでは、これらのサンプル コンフィギュレーションの1つを使いながら、PCベースのハードウェア開発プラットフォームを使用する方法を紹介しています。

デバイス ドライバ開発

Windows CE用デバイス ドライバを簡単に開発できるように、Embedded Toolkitはデバイスに関連するWin32 APIを提供します。このAPIは他のWin32プラットホームに見られる同類のAPIに大変よく似ています(ほとんどの場合、同じです)。デバイス ドライバを書くためのサンプル コードとヒントが含まれています。オーディオ、ディスプレイ、キーボード、PCMCIA、シリアル、タッチ パネルなどのデバイスに対応するサンプル ドライバが提供されます。これらのサンプルと他のリソースを参考にすれば、組み込みシステム向けのデバイス ドライバと割り込みサービス ルーチンをすばやく簡単に作成、デバッグできます。

その他のWindows CEツールキット

Microsoftは、組み込み可能なJavaアプリケーションの開発向けのWindows CE Toolkit for Visual J++ 1.1と、簡単にユーザー インターフェイスを設計できるWindows CE Toolkit for Visual Basic 5.0を提供しています。これらのアプリケーション短期開発環境を使用すれば、Windows CEアプリケーションを短期間で作成できます。

サードパーティーによるサポート

Embedded Toolkitの提供により、組み込み開発製品とサービスに、巨大なビジネス チャンスがめぐってきます。

いくつかのアプリケーション、ツール、サードパーティ コントロール、サービス、そして認定Windowsプロフェッショナルを利用できます。ツール ベンダは、Windows CEのデバッグとツール関連APIのセットを使って、既存のWin32提供製品をWindows CEへ移植できます。これにより、製品の価値がさらに高まり、Windows CEソリューションのパフォーマンスと信頼度もまた向上します。

組み込み市場の専門サービスを求める声に応じるシステム インテグレータの数が増加しています。これらのベンダは、Windows CEを組み込みアプリケーションに対応させたり、カスタムのアプリケーション インターフェイスを作成したり、Windows CEの内部について顧客をトレーニングするなど、Windows CEに関する総合的な製品とサービスを提供します。システム インテグレータは、社内にエンジニアリングの人材を抱えていないOEMを支援します。垂直市場を専門に扱う他のベンダは、完全なターンキー ソリューションを顧客に提供します。また、ハードウェア製品のためのビジネス チャンスもあります。

まとめ

MicrosoftがWindows CEで目指しているのは、組み込み開発向けに、慣れ親しんでいる環境とプログラミング インターフェイスを活かしながら、幅広い範囲のマイクロプロセッサをサポートする強力なモジュール型のオペレーティング システムとツールを提供することです。これらのツールは、開発市場に広く浸透することを目的として価格が抑えられており、サードパーティーが提供するいくつかの書籍やトレーニング プログラムでもサポートされます。

本稿では、まもなく登場するversion 2.10とWindows CEツールキットの機能に重点を置きながら、Windows CEとその開発ツールのアーキテクチャ、機能、操作を解説しました。また、Component Object Model(COM)とActiveXコントロールのサポートや、Windows CE Desktop、Microsoft Foundation Classes(MFC)およびActive Template Library(ATL)を使用した開発のサポートなど、いくつかの重要な点についても詳しく解説しました。

Windows CEと組み込み開発ツールの最新情報については、https://www.microsoft.com/windowsce/のWindows CE開発者サイト、またはhttps://www.microsoft.com/embedded/のMicrosoft Embedded Systemsサイトをご覧ください。これらのWebサイトでは、上記および他の機能を技術的に詳しく説明したほかの白書も閲覧できます。