シャープが単一プログラムの組み込みソフトにAPIを導入するデバッグ環境を発表,リンク時間短縮などの効果を確認

組み込みネット編集部

tag: 組み込み

レポート 2001年6月22日


 シャープは,2001年6月13日~15日に高知市で開かれた「ソフトウェアシンポジウム2001」で,携帯情報端末用ソフトウェアなどのデバッグに利用できるシミュレーション環境(ソフトウェア・シミュレータ)を紹介した.このシミュレーション環境はWindowsパソコンや米国Sun Microsystems社のワークステーションの上で動作する.特徴は,単一プログラムとして構成された組み込みソフトウェアのOS部とアプリケーション部の間にAPI(application programming interface)を導入した点にある.携帯情報端末に搭載するPIM機能(アドレス帳やスケジュール帳など)のデバッグに適用し,その有効性を評価した.その結果,「リンク時間を短縮できる」,「異なるアプリケーション・ソフトウェアの間の同一シンボルを,異なるものとして扱える」などの効果を確認した.「携帯情報端末を開発する際,開発期間短縮のため,ハードウェアとソフトウェアの並行開発を余儀なくされる.今回のデバッグ用シミュレーション環境を用意することで,ハードウェアとソフトウェアの並行開発を実現できた」(シャープ 生産技術開発推進本部 生産技術研究所の江上慎一氏,図1)

zu1.jpg
[図1]ソフトウェアシンポジウムで研究成果を発表する江上氏

 組み込みソフトウェアの中には,アプリケーション部,OS部,ハードウェア依存部(BIOS,デバイス・ドライバなど)を切り分けず,単一のプログラムとして開発されているものがある.シャープが考案した手法では,アプリケーションのプログラムとOS(+ハードウェア依存部)のプログラムを別プロセスとし,その間でプロセス間通信を行う構成にする(図2).こうすると,一つのプロセスの規模は単一プログラムの場合より小さくなる.そのため,デバッグ時にコードに修正を加えた後のリンク時間(実行ファイルを作成するときにかかる時間)を短縮できるという.たとえば,アプリケーション部のコード量が少なく,その部分に修正作業が集中するようなソフトウェアをデバッグする場合,こうした構成が有効である(情報携帯端末のソフトウェアはこの条件に当てはまる).

zu2.gif
[図2]考案した手法の概略図
左側が従来の構成.全体が単一のプログラムからできている.右側が今回のデバッグ用シミュレーション環境の構成.OS部とアプリケーション部の間にPLIが導入されている.

 また,開発する組み込みソフトウェアが複数のアプリケーションを含む場合,単一プログラムの構成では,各アプリケーションで利用するシンボル名をすべて異なるものにしなければならない.一方,各アプリケーションをそれぞれ異なるプロセスとして構成しておけば,複数のアプリケーションのコード中で同一のシンボル名を利用することができる.

 ターゲットとなるハードウェアに依存する部分のプログラムは,デバッグを行うパソコンやワークステーションに合わせて作り直した.また,API通信部も独自に作成した.それ以外の部分は,できるだけ実機(既存機種)に搭載しているプログラム・コードを流用するようにした.

 今回の手法ではプロセス間通信を利用しているため,当然,OSとアプリケーションの間の通信オーバヘッドが発生する.しかし,800MHz動作のPentium IIIプロセッサと156Mバイトのメイン・メモリを搭載したWindowsNTパソコンの上でこのシミュレーション環境を動作させたところ,動作周波数120MHzの汎用プロセッサを搭載した実機と同程度の速度で動作し,実用上問題なかったという.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日