今回は、クロス開発の概要と組み込みシステム開発に用いる開発支援機器について詳しく解説する
前回の課題演習―【問題4】は、組み込みソフトウェアのテストやデバッグに用いる「ICE(In-Circuit Emulator)」に関する問題でした。
組み込みシステムでは、開発環境と実行環境が異なる「クロス開発」という方法でソフトウェア開発を行います。
今回は、問題の解答に続いて、「クロス開発の概要」と「組み込みシステム開発に用いる開発支援機器」について解説します。この機会にしっかりと理解しておきましょう。
それでは、解答を発表します!
解答は、「イ.MPUの機能をエミュレートし、デバッグ機能を備えた開発支援機器」です。ICEは組み込みシステムのMPUをエミュレートする開発支援機器です。デバッグ機能を備えていますが、コンパイル機能は備えていません。ソフトウェアのコンパイルはクロスコンパイラを使って行います。
例えば、Windows上で動作するアプリケーションであれば、Windows上に開発環境を用意して開発を行います。このようにソフトウェアの実行環境と開発環境が同じ場合を「セルフ開発(またはオウン開発)」といいます。
組み込みシステムの場合、実際にソフトウェアを動作させる環境でソフトウェア開発を行うことはまずありません。組み込みシステムのハードウェアがそもそもキーボードやディスプレイを備えていなかったり、メモリやハードディスクなどの容量に制限があって開発用のソフトウェアを動かせなかったりするためです。
そのため、組み込みソフトウェアはPC上で開発し、後述するICEなどの開発支援機器を用いて実行環境(組み込みシステムのハードウェア)にプログラムを転送し、実行します。このように開発環境と実行環境が異なる開発方法を「クロス開発」といいます。
クロス開発では、「クロスコンパイラ」を用います。クロスコンパイラはソースコードをコンパイルして実行環境用のオブジェクトファイルを出力します。このオブジェクトファイルと実行環境用のライブラリをリンクして、実行環境で動作するロードモジュールを作成します。なお、セルフ開発で用いるコンパイラを「セルフコンパイラ(またはオウンコンパイラ)」といいます。
クロス開発では、プログラムを開発環境から実行環境に転送して実行するために「エミュレータ」という開発支援機器を用います。
ICEは、実行環境のMPUと同じ機能をエミュレートする開発支援機器です。実行環境では、MPUを外してICEのプローブを接続します。ICEは、このプローブ経由でハードウェア上のバスと信号をやりとりしてハードウェアを制御します。開発環境からは、ブレークポイント、シングルステップ実行、メモリのトレースといったICEのデバッグ機能を利用してテストやデバッグを行うことができます。
ICEは、MPUの機能をエミュレート、つまり模倣する機器であるため、非常に高価です。組み込みシステムで独自にMPUを開発する場合には、同時にICEを開発するケースもあります。しかし、MPUが高度化・複雑化するにつれ、ICEの購入や開発に掛かるコストが大きな負担になってきました。MPUチップ自体も小さくなり、取り外し可能にしてICEのプローブを取り付けることも難しくなりました。そこで、代わりに用いられるようになったのが安価な「JTAG ICE」です。
JTAG(Joint Test Action Group)とは、本来はMPUの検査方式の1つであるバウンダリスキャンテストの規格(IEEE 1149.1)、または規格化を行った業界団体のことです。JTAGに準拠したMPUは、JTAG端子を備えており、その端子を利用するエミュレータがJTAG ICEです。JTAG ICEが広く使われるようになると、従来のICEは「フルICE」と呼ばれるようになりました。JTAG ICEは、フルICEに比べるとはるかに汎用性が高く、安価です。
また、「ROMエミュレータ」という開発支援機器もあります。ROMエミュレータは、組み込みシステムに搭載するROMの代わりに取り付けて動作する機器です。開発環境からROMエミュレータに内蔵しているRAMにプログラムを転送して実行します。デバッグ用のプログラムをROMエミュレータに送って動作確認を行うことも可能です。
組み込みシステムのテストでは、ソフトウェアがハードウェアを適切に制御しているかどうかを確認するために、システムの回路に流れる電流や電圧、電気信号などを測定するための機器を利用します。
機器 | 説明 |
---|---|
テスタ | 電圧、電流、電気抵抗の測定に用いる。電流を測定する際には赤のテストピンを回路のプラス側に、黒のテストピンを回路のマイナス側に当てる。電気抵抗を測定する際には、2本のテストピンを接触させてショートさせ、指針が0Ωを指すように調整する。電圧、電流、電気抵抗の測定レンジを切り替えられるものもある |
オシロスコープ | 電圧がどのように変化するかを測定する。測定用のプローブをオシロスコープのBNCコネクタに接続し、プローブの先端を回路に当てると、画面の横軸を時間、縦軸を電圧として時間の経過による電気信号の変化が波形として表示される。電気信号の振幅、信号の立ち上がりや立ち下がりにかかる時間、ノイズの有無などを確認できる |
ロジックアナライザ | 電圧がHレベルまたはLレベルのいずれかに変化する様子を表示する。一度に複数の回路の信号を測定したり、複数ビットで構成されるアドレスやデータをまとめて表示したりすることが可能 |
表1 組み込みシステムのテストで用いる測定機器 |
いかがでしたでしょうか? クロス開発と開発支援機器について理解できましたか。次回は「ソフトウェア開発モデル」について説明します。お楽しみに! (次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.