第5章 - CQ出版WebShop

このPDFは,CQ出版社発売の「組込みシステム概論」の一部分の見本です.
内容・購入方法などにつきましては是非以下のホームページをご覧下さい.
http://www.cqpub.co.jp/hanbai/books/45/45501.htm
Chapter
5
組込みソフトウェア
要素技術
この章では,組込みソフトウェアを開発するための要素技術として,
ソフトウェア開発環境,
ソフトウェアプラットフォーム,分散システム技術を中心に,
重要となる概念や技術について解説する.
5.1 統合開発環境(IDE) ソフトウェア開発には,テキストエディタ,コンパイラやアセンブラなどの言語
処理系,デバッグツール,シミュレータ,プロファイラ,構成管理ツールなど,各
種のツールが用いられる.これらのツールの利用環境を,ソフトウェア開発環境と
呼ぶ.
組込みソフトウェア開発においては,これらのツールが動作するシステム(これ
をホストシステムと呼ぶ)
と,開発対象とするソフトウェアが動作するシステム(こ
れをターゲットシステムと呼ぶ)が,異なるコンピュータシステムであることが一
般的である.このような環境向けのソフトウェア開発環境を,クロス開発環境と呼
ぶ(図 5.1)
.
テキストベースの開発環境では,各種のツールをコマンドラインから順次呼び出
すことでソフトウェア開発を進めていくが,最近では,これらのツールを(おもに
GUI ベースの)統一的なインターフェースで使用できる開発環境が用いられること
も 多 い. こ の よ う な ソ フ ト ウ ェ ア 開 発 環 境 を, 統 合 開 発 環 境(Integrated
Development Environment, IDE)
と呼ぶ.
組込みシステムのソフトウェア開発環境に関する大きな課題として,使用する
5.1 統合開発環境
(IDE)
125
ツールの多様性が高いことがあげられる.例えば言語処理系については,ターゲッ
トシステムのプロセッサごとに異なるものを使用しなければならないし,デバッグ
用にも多様なツールが用意されている.任意の言語処理系とデバッグツールを組み
合わせて利用できるのが理想的だが,実際には,言語処理系の生成するデバッグ情
報に互換性がないなどの理由で,任意の組み合わせで正しく動作するとはかぎらな
い. ま た, 使 用 す る OS と の 組 み 合 わ せ や,CASE(Computer-Aided Software
Engineering)
ツールを使用する場合には,それとの組み合わせも問題になる.各種
のツールを組み合わせて使いやすい開発環境を構築する作業は,手間とコストを要
するのが現状である.
組込みソフトウェア向けの統合開発環境としては,OS メーカや半導体メーカな
どが,自社製の OS やプロセッサ向けのソフトウェア開発環境として開発・販売し
開発環境/実行環境
開発環境と実行環境が同じ
(a)セル開発環境
ホストシステム
(開発環境)
ターゲットシステム
(実行環境)
開発環境と実行環境が異なる
(b)クロス開発環境
図 5.1 セルフ開発環境とクロス開発環境
126 第 5 章 組込みソフトウェア要素技術
ているものが多い注 5.1.これらの開発環境では,メーカが推奨する組み合わせで使
用するかぎりは,開発環境構築作業
(の多く)
を省略することができる.一方,これ
らの開発環境は,他社製の OS やプロセッサ向けのソフトウェア開発には転用でき
ないのが通常で,複数の OS やプロセッサを使用するユーザにとっては,OS やプロ
セッサごとに異なる開発環境を使用しなければならないという問題がある.
また,特定の OS やプロセッサに依存しないソフトウェア開発環境も存在する注 5.2
が,メーカが推奨する組合せ以外で使用する場合には,開発環境構築作業が必要に
なる.ツール同士をつなぎ込むために,どちらかのツールの改造が必要な場合も多
い.
このような問題を解決する方向性の一つとして注目されているのが,オープン
ソースの統合開発環境である Eclipse である(図 5.2).Eclipse は,各種のツールを
統合するための共通プラットフォームとすることをねらって,IBM によって開発
が開始されたものである.統合開発環境に対し,さまざまな機能がプラグインの形
で組み込めるようになっており,拡張性が高い.Java 言語向けの開発環境を基本
としているが,C 言語や C++ 言語向きの付加ソフトも用意されている.そのオー
図 5.2 Eclipse の画面例
注 5.1:例えば,WindRiver の Tornado,ARM の RealView,ルネサステクノロジの HEW(Highperformance Embedded Workshop)
などがある.
注 5.2:例えば,Green Hills Software の MULTI,eSOL の eBinder などがある.
5.1 統合開発環境
(IDE)
127