監修:株式会社コンピューテックス
JTAG ICEとは
JTAG ICEとは、組み込みシステムの開発やデバッグに使用される装置です。
JTAG はJoint Test Action Groupというインターフェイスの規格を指し、ICEはIn-circuit Emulatorの略です。組み込みシステム上でプログラムを実行し、その動作を監視・制御することができます。これにより、ソフトウェアの開発者がハードウェア上でのプログラムの挙動をリアルタイムで観察し、問題の解決や最適化を行うことが可能です。なお、JTAG以外の接続規格を用意しているチップメーカーもあり、それらに接続できるデバッグツールを総称してJTAG ICEと呼ぶことがあります。
JTAG ICEの使用用途
JTAG ICEは組み込みシステムの開発やデバッグに広く使用されます。以下は具体的な使用用途の一例です。
1. プログラムデバッグ
JTAG ICEを使用するとリアルタイムにプログラムを監視することが可能です。これにより、組み込みシステムのデバッグが容易となります。プログラムの実行中に発生したエラーや不具合を素早く特定し、修正することが可能です。デバッグ機能には、ブレークポイントを設定して、プログラムの特定の箇所で停止させることや、停止した状態で変数の値を確認、ソース行単位でのステップ実行などがあり、プログラムの動作を詳細に調査できます。また、多くのJTAG ICEにはフラッシュメモリへの書き込み機能が用意されており、フラッシュメモリ上で動作するプログラムもデバッグできます。
2. ハードウェアテスト
JTAG ICEによって組み込みシステムのハードウェア内部にアクセスして、メモリやレジスタの値を読み取ることや、書き換えることができます。これらの機能は、ハードウェアの動作をテストする際に必須となります。
また、ハードウェアの信号や状態を監視し、想定された動作と実際の動作との間で一致しない箇所を特定することができます。これにより、ハードウェアの不具合や設計上の問題を早期に発見し、修正することが可能です。
3. パフォーマンス測定
JTAG ICEにはプログラムのパフォーマンス測定機能を持つものがあり、これを使用してシステムのボトルネックを見つけることができます。パフォーマンス測定の種類として、関数単位での実行時間を測定する関数プロファイラや、2点間の実行時間を測定する機能などがあります。
JTAG ICEの原理
JTAG ICE のデバッグ機能はオンチップデバッグ(On-Chip Debug:OCD)と呼ばれる、CPUに内蔵されたデバッグ機能を使用しています。
JTAG ICEはJTAGインターフェースを介してCPU内蔵のオンチップデバッグ機能にコマンドを発行します。JTAGインターフェースはCPUの特定のピン(通常はTCK、TMS、TDI、TDO)を使用しますが、SWD(Serial Wire Debug)のように最小2本線で接続できる規格もあります。
デバッグ時はこれらの端子にコネクタを実装し、JTAG ICE とケーブルで接続します。なお、オンチップデバッグ機能はチップメーカーが独自に提供しており、その違いによって、実現できるデバッグ機能に差があります。
JTAG ICEの選び方
JTAG ICEはデバッグツールメーカーが販売している場合や、チップメーカーが専用のJTAG ICEを用意している場合があります。一般的な販売価格帯は5万円から50万円ぐらいですが、価格が高くなればデバッグ機能も高度になります。接続のためのプローブやケーブルは、コネクタ形状やピン数、インターフェースによって異なりますので、デバッグ対象となるハードウェアの仕様に合ったものを選ぶ必要があります。JTAG ICEを選定する際は、以下の要素を考慮することが重要です。
1. 対応CPU
JTAG ICEがサポートする組み込みCPUの種類を確認します。デバッグ対象のデバイスがJTAG ICEのサポート対象に含まれていることが重要です。対応していない場合、正常にデバッグできません。
2. 機能
JTAG ICEの機能も重要な選定要素です。各社の基本的なデバッグ機能、例えば実行・停止、ブレークポイント、ステップ実行などには大きな違いはありません。しかし、RTOS対応、マルチコアデバッグ機能、リアルタイムトレース機能など、高度なデバッグ機能に関しては、製品ごとに機能差がありますので、必要な機能を提供している JTAG ICEを選択することが重要です。
3. 性能・使いやすさ
JTAG ICEの性能も重要です。ダウンロード速度やステップ実行のレスポンスなどは、デバッグの効率に影響しますので、動作の速い製品を選定する必要があります。また、使いやすさも重要な指標です。一般にデバッグにかかる時間は開発期間に対して大きな割合を占めます。デバッガの操作性が良ければ、この時間を少しでも短縮することができます。
4. 統合性
開発環境との統合性も考慮する必要があります。JTAG ICE が使用できる環境と、普段使用している統合開発環境との親和性があることを確認します。
本記事はJTAG ICEを製造・販売する株式会社コンピューテックス様に監修を頂きました。
株式会社コンピューテックスの会社概要はこちら