63. マイコン開発環境
エミュレータ
エミュレータとは、マイクロプロセッサ(MPU)やマイクロコントローラ(MCU)、 FPGA などの演算処理機能を、専用ハードウエアやソフトウエアで模倣的に構築し、プログラムのデバッグなどを実行する仕組みのことです。 エミュレータはイン・サーキット・エミュレータとオンチップ・エミュレータの二つに大きく分けられます。以下で、それぞれについて説明します。
インサーキット・エミュレータ(ICE:in-circuit emulator)
インサーキット・エミュレータは、マイコンやマイクロプロセッサの機能 を模倣的に実現する装置です。通常、ICE(アイスと発音)と呼ばれます。使用する際には、プリント基板に実装したマイコンを取り外し、そのICソケットに接続します。このため、実際の使用環境に近い状態でデバッグ作業を行えます。デバッグ作業を支援する機能としては、命令のステップ実行や、ブレーク・ポイント(プログラムの実行を一時的に止める場所)の設定、マイコンやマイクロプロセッサの内部のメモリーやレジスタの内容の確認などが用意されています。さらに、プログラムが暴走した際の強制ブレークといった機能も備えています。主に、組み込み機器に搭載するソフトウエアの開発で使用します。
オンチップ・エミュレータ(on-chip emulater)
オンチップ・エミュレータは、マイコンやマイクロプロセッサをプリント基板上に実装したままの状態でプログラムのデバッグを実行する装置の総称です。マイコンやマイクロプロセッサの内部にデバッグ回路を搭載し、この回路で収集した情報を利用してデバッグ作業を行います。情報はまず、デバッグ用インターフェイスを介してエミュレータ・ユニットに送られ、そこからUSBやイーサーネットで接続したホスト・マイコンに転送されます。インサーキット・エミュレータに比べると機能は大幅に劣りますが、コストが低いことやプロセッサとの接続が簡単といった利点を備えています。オンチップ・エミュレータは、マイコン(マイクロプロセッサ)とエミュレータ・ユニットの間の接続方式によって、いくつかの種類があります。具体的には、JTAGエミュレータや専用エミュレータ、リモート・モニタ・デバッガ、ROMエミュレータなどです。
統合開発環境(IDE:integrated development environment)
コンパイラやテキスト・エディタ、デバッガといったさまざまなツールを、単一のグラフィカル・ユーザー・インターフェイス(GUI)から利用できるようにしたソフトウエア開発環境のことです。代表的な統合開発環境としては、米IBM 社が開発した「Eclipse(エクリプス)」や、米フリースケール・セミコンダクタ社のマイコンに向けた「CodeWarrior(コードウォリアー)」、ルネサス テクノロジのマイコンに向けた「Hign-Performance Embedded Workshop」などがあります。
デバッガ
プログラムの不具合(バグ)を発見、修正する作業を支援するソフトウエア・ツールです。多くの場合、インサーキット・エミュレータ(ICE)などのハードウエアと連携させて使用します。
コンパイラ
プログラミング言語で記述したプログラムのソース・コードを、コンピュータが直接実行できる機械(マシン)語のプログラムに変換するソフトウエア・ツールです。コンパイラを使って変換する工程をコンパイルと呼びます。変換後のプログラムはオブジェクト・コードと呼び、インタープリター型言語に比べると実行速度は極めて高くなります。
リンカ
コンパイラによってソース・コードから変換したオブジェクト・コードに、必要なライブラリを付加して実行可能なプログラムを生成するソフトウエア・ツールのことです。通常は、コンパイラに統合されていることが多いようです。開発環境によっては、コンパイラとリンカの処理を合わせてビルドと呼んでいます。