JTAG vs SWDデバッグ


41

この記事をざっと読んだ後、JTAGデバッグよりもSWDデバッグの利点は何だと思いますか?

SWDはより少ないワイヤ/ピンを使用し、より少ないスペースなどを使用することを理解しています。しかし、ハードウェアプログラマー/デバッガーデバイスのパフォーマンス、機能、およびコストの点で、SWDはどのように機能しますか?EclipseのようなIDEでコードをブレークポイント/一時停止およびステップスルーすることはできますか?

JTAGで実行できると思われるように、SWDインターフェイスを使用してARMチップをプログラムできますか?


最新のコア(Cortexなど)を備えたARMベースのチップは、SWDを介してプログラムおよびデバッグできます。
Bピート

@BPete:SWDでは、スリープモードを使用するSTベースのチップのデバッグが難しいことがわかりました。現在のボードにはJTAGに使用できるピンがありませんが、その点でJTAGの方が良いのではないかと思っていましたか?
supercat

2
これ(SWD)は、TIがMSP430プロセッサのサブセットに設定したSpy Bi-Wireインターフェースに少し似ています。サンプルデバイスの2つの非GPIOピン(TEST、およびRST / NMI)にSBWTCLKとSBWTDIOが多重化された2線式JTAGに似た(プラスの電源とグラウンド)。EZ430開発キットでサポートされています。そして、それ(SBW)はステッピングとブレークポイントをサポートします!TIのARMが同じインターフェイスを持っているかどうかはわかりませんが、プログラミング/デバッグツールを共有するのに十分な共通性がある場合は興味深いでしょう。
ブライアンドラモンド

あなたの記事のリンクは死んでいますが、おそらくこれは記事だったのでしょうか?arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

回答:


12

SWDはARMチップセットをプログラムでき、さらにデバッグしてブレークポイントを追加できます。SWDのもう1つの良い点は、デバッグ用のprintfステートメントにシリアルワイヤビューアを使用できることです。Keilコンパイラーでのみ使用しました。


シリアルワイヤビューアでこのリンクを見てください。keil.com/download/files/swv_on_cortex-m3.pdf
user468662

37

電気的に

  • ピン数
    • JTAGには4本の信号線が必要です
    • SWDは2本の信号線のみを必要とします
    • IEEE 1149.7で指定された2線JTAGインターフェイスは、ピン数を減らしますが、多くのICで広く利用できるようには見えません。また、帯域幅を削減します。
  • トポロジー
    • JTAGは、チップ間のデータラインにデイジーチェーン構成を使用します。したがって、JTAGの速度は、チェーン上の最も遅いチップによって制限されます。ただし、リセットおよびクリアラインはバス接続されている(チェーンではない)ため、SWDJ-DPを介した相互運用が可能です(以下の説明を参照)。
    • 2線式JTAGではスタートポロジーが可能ですが、あまり使用されません。
    • SWDはスタートポロジーを可能にします

機能的に

  • SWDは、マイクロデバッグ専用に設計されたARM固有のプロトコルです。
  • JTAG(ジョイントテストアクショングループ)は、主にチップとボードのテスト用に設計されました。これは境界スキャンに使用され、生産中のチップ/ボードの障害をチェックします。マイクロのデバッグとフラッシュは、時間の経過とともにアプリケーションが進化したものです。
  • JTAGは、ARM以外の複数のマイクロコントローラ/プロセッサアーキテクチャで使用されています。

全体会議

JTAGは、2017年現在、ARM以外のマイクロ、プログラマー、および生産ラインにより広くサポートされています。JTAGのプログラマは、FT232H [*]ブレイクアウトやその他のプログラミングデバイスの形で安価に入手できます。ただし、SWDには、ARMチップのデバッグにおける速度およびその他の分野で明確な利点があります。

テストでのJTAGとデバッグでのSWDの目的の性質の分割により、ARMはCoreSightテクノロジーを介してSWJピンをJTAGのクロックとリセットラインにマッピングするSWJ-DP(シリアルワイヤ/ jtagデバッグポート)を提供します。したがって、SWJ-DPでは、同じ物理接続で両方のプロトコルを使用できますが、JTAGとSWDを時間的に多重化する必要があるため、必ずしも同時にまたは同じプログラマーで使用する必要はありません。

役立つ参考文献



7

OPには少し遅すぎるかもしれませんが、同じ質問を持つ他の人にとっては役立つかもしれません。それで、ここに行きます(個人的な経験):SWDでプログラムとデバッグ(メモリ/レジスタマップの取得、ブレーク、特定のポイントからの実行など)が可能です。ここでEclipseをJ-Link EDUを介してGDBで使用します。これは最大50ユーロです。いくつかのバグがあります(デバッガーを介してターゲットをリセットし、マップを接続したり取得したりしないことがあります)が、その癖に慣れると、比較的安価で使いやすい


7

古い質問ですが、パフォーマンスの比較に対処する回答はありません。SWDとJTAG間の機能セット(CoreSight DAPを使用する場合)はほぼ同じですが、SWDシーケンスは同等のJTAGシーケンスよりも約10%短くなっています。

ほとんどの場合、データ帯域幅の損失はありません(特に帯域幅が最も重要なストリーミング読み取りまたは書き込み)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.