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

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

組み込みコンピュータのシステム構成とクロス開発

組み込みコンピュータは、ハードウエア構成も、パソコンやサーバー機とは大きく違っています。洗濯機に組み込まれたコンピュータであれば、洗濯槽のモーターや注水/排水のバルブを制御するための、出力回路が必要です。水位センサーからの入力回路、スタート・ボタンや各種の設定ボタンからの入力回路も必要です。逆に、通常のパソコンのようなLCDモニター、キーボード、マウス、ハード・ディスク、CD-ROMドライブなどは、洗濯機には付いていません。

組み込みコンピュータ向けのプログラミング言語は、C言語が主流です。C言語は、入出力デバイスやハードウエアを直接操作できるという点において、組み込み向けにもなじみやすい言語です。オブジェクト指向言語のような高度な機能はなく、抽象度も低いですが、そのぶんオーバーヘッドが少ない点が、組み込み向けとしてはメリットになります。

C言語を使うケースのほかに、OSの内部処理の一部や、割り込みハンドラの入り口や出口の処理など、高級言語では書けない部分で、アセンブリ言語を用いる場合があります。また、携帯電話でダウンロードして実行するプログラムなどのように、組み込み系でも互換性の要求が強い場合には、Java言語を利用する場合があります。

組み込み機器の制御用コンピュータは、その機器に合わせた独自のハードウエア構成になっており、プログラム開発のための機能は持っていません。例えば、洗濯機を制御するコンピュータの場合、LCDモニターやキーボードがありませんし、ソース・プログラムを格納するファイルやハード・ディスクなどの2次記憶装置もありません。CPUは8ビットや16ビットですし、WindowsやLinuxといった開発環境として適したOSも動いていません。

したがって、組み込みコンピュータの中では、ソース・プログラムの編集やコンパイルなどの作業はできません。組み込み機器のプログラム開発の作業は、組み込み機器内の制御用コンピュータとは別のコンピュータ(開発者のパソコンなど)の上で行います。これを「クロス開発」と呼びます。クロス開発とは「プログラムの開発環境と実行環境が別のコンピュータである」という意味です。

これに対して、パソコン用のプログラムは、パソコン上で開発して、同じパソコン上で実行やデバッグを行います。すなわち、開発環境と実行環境が同じコンピュータです。このような開発方法を「セルフ開発」と呼びます。

図1: 組み込み機器(洗濯機)とパソコンのハードウエア構成(クリックで拡大)

クロス開発の実際

組み込み機器のクロス開発では、開発用のパソコン(ホストと呼びます)と、開発対象である組み込み機器内の制御用コンピュータ(ターゲットと呼びます)が別です。したがって、開発したプログラムのオブジェクト・コードを実行する前には、何らかの方法で、開発用のパソコンから実行環境であるターゲットに転送する必要があります。

オブジェクト・コードの転送には、ICE*2などのハードウエア開発ツールを用いる場合と、ターゲット上で動くモニターやOS、転送用プログラムなどのソフトウエアを用いる場合があります。後者の場合は、ターゲットのハードウエア構成に応じて、シリアル、USB、LANなどの回線を経由して転送を行います。このほか、CFカード、SDカードなどのリムーバブル・メディアを用いる方法もあります。

*2: ICEとは、In-Circuit Emulatorの略で、プログラムのダウンロードやデバッグなどのために、開発対象機器のCPUと開発用ホストとの間に接続して利用する、ハードウエア機器です。

ソフトウエアを使って転送するには、ターゲット上でも、オブジェクト・コードを受信するためのプログラムが動いている必要があります。また、リムーバブル・メディアを用いるには、ターゲットにおいて、そのメディア上に置かれたオブジェクト・コードをブート(起動)する機能、すなわちロードして実行する機能が動いている必要があります。

いずれにしても、ターゲット上で、ある程度のプログラムが動いた後でないと、これらの方法は使えません。したがって、ターゲットのハードウエアが完成した直後に最初に動かすプログラムは、ICEなどのハードウエアを使って転送する必要があります。また、ターゲット上でシリアル、USB、LAN、リムーバブル・メディアなどを使えない場合は、最終的なプログラムが完成するまで、ICEなどによる転送を続ける必要があります。

組み込みコンピュータのソフトウエア開発は、クロス開発であり、オブジェクト・コードの転送や異なる2つのコンピュータ環境の使い分けが必要となります。このため、パソコンのプログラムをセルフ開発する場合よりも、開発が難しくなります。ただし、後述する統合開発環境(IDE)のEclipseを利用すれば、オブジェクト・コードの転送が自動化され、クロス開発であることをあまり意識せずに開発できます。

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

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メルマガ会員のサービス内容を見る

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