エンジニアコラム

世間によくあるWindows CEに対する疑問   

エンジニア・コラム

高根 英哉 さん [ コムラッド 代表取締役・マイクロソフト認定MVP ]

第2回:Windows CEの開発効率を考える

組込みOSを選択するとき、開発効率という観点でWindows CEを採用する方も多いと思います。リファレンスボード上で、すでにWindows CEが起動し、インターネットも、動画再生も、デモとして自分の目で見てしまうと、あとは簡単なカスタマイズとアプリケーション開発で完成と思うのは当然の話です。結果として開発工程内にはOS開発がほとんど考慮されないケースも見受けられます。しかし、開発とはそこまで単純なストーリーでは完結しないものです。


現在の組み込み開発では、ボード設計を一から行うことは少なく、各ボードベンダが提供するリファレンスボードをベースとして、目的に応じてカスタマイズしていくという工程がほとんどです。当然、ボードベンダは、採用されることを期待して、予めOSが起動するまでの環境を用意しています。特にWindows CEの場合、コミュニティから各種モジュール調達ができるLinuxとは異なり、ベンダが自ら開発投資をして、ボードに適したBSP(Board Support Packageの略。OSの中でハードに依存する部分をまとめたパッケージ)を提供することになります。そのため、リファレンスボードでの安定稼働率は高いわけで、かなり完成度の高いデモを見ることができます。しかし、それはあくまでもデモとしての完成度の話であり、実開発とは多少異なることを覚えておかなければなりません。


ボードベンダが提供するBSPは、まさにそのボードをターゲットとしていますから、当然、完成度は高いわけです。その点では、さまざまなハードウエア環境が混在するLinuxより初期の手がかりは早いわけです。デモの完成度が高いのはそれが所以であるとも言えます。しかし、これらのBSPとて、どのようなアプリケーションで使用されるかは決め打ちにすることはできません。ボードベンダはさまざまなアプリケーションで採用されたいと願うからです。省電力一つをとっても、ハンディーターミナルで使用するなら重要な機能ですが、据え置き型のものであれば、不要な場合すらあります。不要ならちゃんと削除すればよいのですが、基本動作に影響がないとそのまま放置され、隠れてパフォーマンスに影響を与えるなんてことにもなりかねません。こうなると、リファレンスBSPの中では、どのような使用方法をターゲットに電力管理を提供すべきかわからなくなります。結果として、このような場合、提供を省くか、サンプル程度の提供に落ち着く場合が多いのです。もう一つ例をあげましょう。動画再生用にコーデックエンジンを搭載しているボードを考えた場合、それでも、用途によっては動画機能は不要だったりします。しかし、デモ時の動画再生はインパクトがありますから、メモリの使用がコーデックエンジンに多く割り当てられるというのが一般的です。このことを理解せずにそのままBSPを使用すると、動画再生が不要な用途では、メモリの割り当てに思わぬ苦労を強いられることになります。
このように、リファレンスBSPはさまざまな使用を想定し、その中でボードの特徴を活かすように開発されています。しかし、それは必ずしも、お客様が求めるものとイコールではないはずなのです。リファレンスとなるBSPがすでに存在することは、開発効率を飛躍的に向上させるのは確かです。しかし、OSとは、自身のものとして開発をする工程が必要であることをよく覚えておきましょう。そのためにはリファレンスBSPを徹底的に調査し、自分たちの開発で何が必要かをよく検証し開発工程に組み込むことが重要だと思います。