業務ソフト開発と組み込み開発の違い

2010年8月6日(金)
松為 彰

クロス開発を意識させないEclipse

Eclipse Foundationが提供するオープン・ソースの統合開発環境「Eclipse」は、もともとはJavaを中心とするエンタープライズ(企業情報システム)向けのアプリケーション開発環境でした。最近では、組み込み向けのクロス開発に利用する例も増えています。

Eclipseをベースにした組み込み向けの開発環境には、後述するリアルタイムOS「T-Kernel*3を搭載した機器向けの開発も可能な製品「Eclipse for PMC T-Kernel」(パーソナルメディアのT-Engine関連製品のユーザーは無償で利用可能)もあります。

*3: T-Kernelについては連載の第2回で紹介します。

Eclipseを用いると、ソース・プログラムの作成、編集、コンパイルはもちろんのこと、オブジェクト・コードのターゲットへの転送や、ターゲット上でのプログラムの実行などの操作を、GUI画面上のメニューやボタンによって指定できます。また、ソース・プログラム上でのブレーク・ポイントの設定や行単位のシングル・ステップ、変数の参照や変更といった、豊富なデバッグ機能も備えています。

図2: EclipseをベースにしたT-Engine開発環境(クリックで拡大)

クロス開発にはセルフ開発とは違った難しさがありますが、Eclipseを利用することによって、ターゲット側の環境の違いが、ある程度隠ぺいされます。ターゲットへのプログラム転送などの処理も自動化されるので、見かけ上はセルフ開発に近い形態で組み込み機器のソフトウエアを開発できます。このため、組み込みの初心者でも、効率よくT-Kernelの応用システムを開発できます。

また、Eclipseにより、コストをかけることなくGUI統合開発環境を利用できます。組み込み向けの開発環境には高価なものが多いですが、Eclipseはオープン・ソースです。Teamacaron*4などのT-Kernel応用製品や、その開発環境に、Eclipseが付属しています。

*4: Teamacaronについては連載の第3回で紹介します。

EclipseをベースとしたT-Kernel用の開発環境では、ターゲットのハードウエアにもともと備わっているシリアル回線やUSB、あるいはLAN経由で、プログラムを転送できます。このため、開発時に別途ICEを用意する必要がありません。

一般に、開発環境や開発用のICEは、開発者の人数分だけ必要です。これらの開発ツールをそろえるだけでも、かなりの費用になります。Eclipseを使えば、この費用を大きく削減できます。

仮想環境によるクロス開発

VMwareやQEMUなどの仮想化ソフトをクロス開発に利用する方法もあります。ターゲット側の実行環境を、開発用ホストの中でシミュレーションすることによって、開発やデバッグを行うわけです。

もちろん、シミュレーション可能なCPUやデバイスに制約があるケースや、実行のタイミングが実際の組み込み機器(実機)と一致しないために、リアルタイム処理や性能に関係したデバッグが難しくなるケースもあります。しかし、一方で、実機が不要という大きなメリットがあります。条件によっては、仮想化ソフトを使ったシミュレーションは有効です。

仮想化ソフトを利用した組み込み向けのクロス開発環境を提供する製品としては、「T-Kernel/x86評価キット*5があります。

*5: T-Kernel/x86評価キットについては連載の第3回で紹介します。

T-Kernel/x86評価キットは、x86を搭載した制御用コンピュータ上で動作するリアルタイムOS「T-Kernel」に、デバイス・ドライバやミドルウエア、Eclipseを含む開発環境を加えてパッケージ化した製品です。仮想化ソフトであるVMwareを利用することで、開発用ホストであるWindowsの環境内で、T-Kernelを含むターゲット側の実行環境をシミュレーションしながら開発できます。

T-Kernel本体や通常のアプリケーションのほか、画面への表示、LAN、USB、シリアルのデバイスについてもシミュレーションできます。このため、ユーザーが追加した特殊なデバイスを除けば、実機にかなり近い環境をパソコン内で再現できます。

開発用ホストであるWindowsの機能を併用できる点も、仮想化ソフトならではのメリットです。例えば、実機を含めた画面のイメージを、簡単にキャプチャできます。さらに、ターゲット側の障害発生時のプログラム実行状況(いわゆるコアダンプ)をWindows上のファイルとして保存しておけば、その状態からの障害の再現調査を後から何度でも簡単に行うことが可能です。

仮想化ソフトを使った場合は、セルフ開発と同じように、実機の画面が開発用ホストの中の1つのウィンドウとして表示されます。しかし、実機の画面を開発用ホストから独立させた方が、本来の動作環境に近くてデバッグしやすい、といった需要もあります。このような場合は、WindowsにUSBサブモニターを接続し、シミュレーション実行している実機側の画面をUSBサブモニターに表示する方法があります*6

*6: 具体的な方法については、「USBサブモニターと仮想環境を使ったT-Kernelアプリ開発」にレポートがあります。

こうすれば、開発画面と実機のシミュレーション画面が物理的に分離されるため、組み込み開発本来の姿であるクロス開発風のハードウエア構成(画面の見かけのみですが)となります。開発用ホストのメイン画面の方は、Eclipseのみでフルに使うことができます。

図3: 仮想化ソフトを活用したクロス開発。右画面はシミュレーションによる実機の画面(クリックで拡大)

次回は、組み込み用のリアルタイムOSとT-Kernelについて解説します。

パーソナルメディア株式会社 代表取締役社長

1985年に入社以来、TRONやT-Kernelに関連した各種の製品の企画と開発に携わってきた。組込み向けのほか、パソコン用のTRONである「超漢字V」、多漢字検索ソフト「超漢字検索」、TRONを応用したデータ消去ソフト「ディスクシュレッダー4」などを商品化している。2010年4月よりT-Engineフォーラム T-Kernel 2.0 WGの座長。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています