PR

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

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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