次のような市販のJTAGデバッガーをいくつか見ました。
OpenOCD FT2232HベースのJTAGデバッガ:
クレジットカードサイズのPCBが小さいFT2232H JTAGデバッガーと比較して、これらの商用デバッガーは大きな箱であるのはなぜですか?市販のデバッガーの内部にはどのような追加のハードウェアがあり、デバッグのどの部分でこれらが役立ちますか?
次のような市販のJTAGデバッガーをいくつか見ました。
OpenOCD FT2232HベースのJTAGデバッガ:
クレジットカードサイズのPCBが小さいFT2232H JTAGデバッガーと比較して、これらの商用デバッガーは大きな箱であるのはなぜですか?市販のデバッガーの内部にはどのような追加のハードウェアがあり、デバッグのどの部分でこれらが役立ちますか?
回答:
JTAGケーブルは、あらゆる種類のものを中心に構築できます。たとえば、ザイリンクスJTAGケーブルには、サイプレスチップとFPGAがあります。Atmelケーブルには、通常、USBをサポートするAVRマイクロコントローラーが含まれています。それらには通常、インターフェース/レベル変換/保護/分離コンポーネントも含まれます。それは本当にメーカーに依存します、それらはすべて独占的であり、相互に互換性がありません。一般に、使用する必要のあるすべてのソフトウェアで動作するケーブルが必要です。必要なのがOpenOCDだけの場合は、FTDIベースのケーブルで問題ありません。しかし、使用したい場合は、ザイリンクスのChipScopeと言いますか?次に、ザイリンクスの本物または中国の模造品のいずれかを支払う必要があります。
持っているリンクは単純なJTAGケーブル用ではなく、はるかに特殊化されています。個人的には、これらは完全なテスト機器だと思います。それらは基本的に特殊なプロトコルアナライザです。これらは、テスト中のデバイスに組み込まれている専用のトレースハードウェアとインターフェースするように設計されています。トレースハードウェアはJTAGとは異なります。その目的は、すべての実行コア全体で実行中のソフトウェアの完全な実行トレース(つまり、実行されたすべての分岐)を記録し、高速バスを介して外部トレース収集システム(問題のボックス)に渡すことです。その後、トレースはオフラインで分析されます。これは、ブレークポイントを設定してコードをステップ実行することによってJTAGで実行できるデバッグとは異なります。トレース収集は、実行中のプログラムに対して完全に透過的であると想定されています(ブレークポイントや追加されたコードはありません)。テスト対象のプロセッサは1秒あたり数億の命令を実行できるため、生成されたトレースを保存するには、大量の帯域幅と高速メモリが必要です。リンクされたデバイスは、Auroraプロトコル(おそらく他のプロトコル)をサポートします。これは、USB 3、シリアルATA、シリアルギガビット/ 10Gイーサネット、およびPCIeに多少似た、8b / 10bでエンコードされた高速シリアルプロトコルです。6.25 Gbpsでデータを転送できます。これは、PCへのUSBリンクが処理できるデータを大幅に超えるため、オフライン分析のためにキャプチャしたデータをオンボードRAMに保存する必要があります。これらのデバイスには、かなり高速(数GB)の高速DRAMと共にデータをキャプチャするための高速デシリアライザを内蔵した、かなりハイエンドのFPGAが含まれます。
違いはソフトウェアと機能であり、ハードウェアに大きな影響を与えます。
FTDI JTAGケーブルは、コマンドセットを使用してJTAG信号を生成します。これらは非常に低レベルのコマンドであり、JTAGステートマシンがどのように機能し、操作されるかを正確に説明します。セットアップに適切なコマンドを送信するロジックは、PCのデバッグホストで実行されます。
これは、機能的で安価なハードウェア、フリーソフトウェア(GNU GCC + GDB + OpenOCD)などです。ARMデバッグ、FPGAプログラミング、または一般的なJTAGチェーンスキャン用のポートがあるので(低レベルのコマンドセットのため)十分な柔軟性があります。 。
商用ケーブルは、プラットフォーム固有のものであり、多くの場合、ケーブル内にロジックが含まれています。これにより、PCプログラムはより高速な抽象的な方法でデバイスと通信できます。
たとえば、JLINK USBプロトコルを見てください。EMU_CMD_WRITE_MEM_ARM79のようなコマンドが含まれています。FTDIケーブルもこのコマンドを実行できますが、これはPC側でFTDIケーブルが理解する低レベルのJTAGコマンドに変換されます。また、高レベルのコマンド(メモリの一部を書き込む)がさらに多くのサブコマンドに分割され、JLINKがケーブル上で実行できることも意味します。これにより、遅延が改善され(USBの制限を考慮に入れて)、速度が向上します。
また、サポートするケーブルはIDEの商用ベンダー次第であり、商用ケーブルがサポートされる可能性が高くなります。一方、無料のIDEが安価なFTDIデバッグケーブルをサポートする可能性が高くなります。
一部の商用ソフトウェアには、ソフトウェアコードブレークポイントのサポートも含まれています。ハードウェアで許可されているよりも多くのコードブレークポイントを設定できます。
一部のマイクロコントローラのトレース機能を使用するには、4ビットのパラレルバスをキャプチャするために非常に高速なハードウェアが必要です。この機能を備えたハードウェアには、FPGAが含まれていることがよくあります。