プログラムがマイクロコントローラで実行されているときに、JTAG ポートを介してグローバル変数をライブで読み取りたいと考えています。出来ますか?
3 に答える
JTAG は物理インターフェイスのみを定義します。実行中にアクセスをサポートする場合とサポートしない場合がある特定のプロセッサのオンチップ デバッグ機能については説明しません。
さらに、VB で実行できるかどうかは実際の問題ではありません。重要な問題は、JTAG インターフェイスに使用しているハードウェア デバイスや I/O ポート、および .Net 経由でアクセスするためのドライバーと API が利用可能かどうかです。いずれにしても、VB.Net は私が最初に選択する言語ではありません。
開始するのに適した場所はおそらくOpenOCDですが、.Net 固有ではありません。
JTAGの実装によっては、「Almost-Live」が実行可能である可能性があります。多くの場合、メモリを読み取るJTAGアクティビティは、マイクロからサイクルを盗むことによって(または、パイプラインに命令を挿入することによって)そうします。JTAGを介してメモリに完全に透過的にアクセスできるマイクロがあるかどうかはわかりません。
「必要なこと」は、JTAGの実装を理解し、変数がどこにあるかを把握し、適切な方法でJTAGピンを小刻みに動かすことによって「メモリ読み取り」コマンドを発行することです。これは小さな作業ではありません。そのため、プロのエンジニアは、この作業を実行するツールに(場合によっては多額の)お金を払っても構わないと思っています。
多くの場合、ベンダーが提供する無料の(限定された)ツールチェーンでもこれを実行できます。
はい、可能だと思います。ただし、JTAG ポートを駆動する必要があり (それは苦痛に聞こえます!)、データがチップ上のどこに格納されているか、およびフォーマットが何であるかを正確に把握する必要があります。