ポストPC時代のキーワード「エンベデッド」のすべて ――転換点はカー・ナビゲーション・システム
●むずかしくなる実機デバッグ
アプリケーションを搭載するCPUやハードウェアも複雑になる一方である.仕様が肥大化していくにも関わらず,小型化,軽量化も同時に行われているわけだから,その複雑度は乗算的に進んでいく.
CPUを含めた周辺回路を1チップ化するSOC(system on a chip)は,小型化の決定打となった.SOC化すれば,部品点数が少なくなり,組み立て工数も少なくなる.コストダウンと品質の向上,安定も期待できる.
ここでも問題はデバッグがしづらくなるということだ.組み込みソフトウェアの実機デバッグは,メモリやI/Oといったハードウェア資源の限られたターゲット上で何が起こっているかを取り出して見ることが基本だ.
ICE(インサーキット・エミュレータ)は,長い間,そのターゲットで何が起こっているかを見るツールとして重宝されてきた.ICEは,ターゲット・ボード上のCPUの実装される場所にプローブを当てて,CPUの代わりに動作をエミュレーションしてくれる装置であるが,動作のエミュレーションとともにデバッガと連動してソフトウェアの動作検証が可能であった.
しかし,SOCではCPUのバス,コントロール信号が内部に集約されてしまうため,SOCの外部ピンをプローブしてもCPUのエミュレーションはできない.こうした周辺回路の統合や,あるいは動作周波数が高速になることによるCPUエミュレーションの限界はすでに見えてきており,さまざまなデバッグ手法が開発されてきている.
京都マイクロコンピュータのPARTNER-ET?(http://www.kmckk.co.jp/)は,CPUではなくソフトウェアの格納されるROMソケットをプローブ対象とし,ユーザROM領域の一部に小型のモニタ・プログラムを走らせている(写真7).ホスト・パソコン上のデバッガがROMソケット経由でモニタ・プログラムと通信を行うことにより,システムの検証を行えるようにしている.同社ではROMエミュレータと,デバッガの技術を統合した「ROMインサーキット・デバッガ」と分類している.
PARTNER-ET?のユニークなところは,ROMをエミュレーションする箱をホスト上のデバッガとターゲット上の小型モニタ・プログラムの接続バスとして使用していることである.デバッガとモニタ・プログラムを交換すれば,同じ箱でどのようなCPUにでも対応できる.この方法であればCPUが新しくなってもソフトウェアの変更だけで対応できるし,メモリ・バスが取り出せればI/Oを内蔵したCPUでもデバッグ可能だ.
このほか,ロジック・アナライザをエミュレータの代わりにデバッガとして使う手法なども実用化されている.
〔写真7〕PATRTNER-ET2