JTAG vs SWD hata ayıklama


41

Bu makaleyi gözden geçirdikten sonra, SWD'nin JTAG hata ayıklamasına göre hata ayıklamanın yararları nelerdir?

SWD'nin daha az kablo / pim kullandığını, daha az yer kapladığını vb. Anlıyorum. Kod hala IDE'nin Eclipse'deki gibi işaretlenmiş / duraklatılmış ve atılmış olabilir mi?

JTAG'da yapılabileceğine inandığım gibi, bir ARM çipi SWD arayüzü kullanılarak programlanabilir mi?


Daha yeni çekirdeklere sahip ARM tabanlı yongalar (örneğin Cortex) SWD üzerinden programlanabilir ve hata ayıklanabilir.
B Pete,

@BPete: SWD ile uyku modu kullanan ST tabanlı çipleri ayıklamanın zor olduğunu; Mevcut panolarımızda JTAG için pinler yok, ama JTAG'ın bu konuda daha iyi olup olmadığını merak ediyor muydum?
Supercat,

2
Bu (SWD), TI'nin MSP430 işlemcilerinin bir alt kümesine koyduğu Spy Bi-Wire parazitine benziyor. SBWTCLK ve SBWTDIO'nun örnek bir cihazdaki iki GPIO pimi (TEST ve RST / NMI) üzerinde çoğaltılmadığı 2 kablolu JTAG benzeri (artı güç ve toprak). EZ430 devkit tarafından desteklenir. Ve (SBW) adım ve kesme noktalarını destekliyor! TI'nin kendi ARM'lerinin aynı ara yüze sahip olup olmadığını bilmiyorum, ancak programlama / hata ayıklama araçlarını paylaşmak için yeterli ortaklık varsa ilginç olurdu.
Brian Drummond,

Makale bağlantınız öldü, ama belki de makaleydi bu? arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

Yanıtlar:


12

SWD, ARM yonga setini programlayabilmeli, ayrıca hata ayıklama yapabilir ve kesme noktaları ekleyebilirsiniz. SWD hakkındaki diğer iyi şey, seri kablo görüntüleyiciyi printf ifadeleriniz için hata ayıklama amacıyla kullanabilmenizdir. Sadece Keil derleyicisiyle kullandım.


Seri kablo görüntüleyicideki bu bağlantıya bakın. keil.com/download/files/swv_on_cortex-m3.pdf
user468662

37

elektrikle

  • Pin Sayısı
    • JTAG 4 sinyal hattı gerektirir
    • SWD sadece 2 sinyal hattı gerektirir
    • IEEE 1149.7'de belirtilen 2 kablolu JTAG arayüzü pin sayımını düşürür ancak birçok IC'de yaygın olarak bulunmaz gibi görünmektedir. Aynı zamanda bant genişliğini azaltır.
  • Topoloji
    • JTAG, yongalar arasındaki veri hatları için bir papatya zinciri yapılandırması kullanıyor. JTAG'ın hızı böylece zincirdeki en yavaş yonga ile sınırlıdır. Sıfırlama ve net çizgiler, SWDJ-DP ile birlikte çalışabilirliği sağlayan, ancak zincirleme yapılamaz (zincirlenmemiş).
    • 2 kablolu JTAG, yıldız topolojisine izin verir, ancak sık kullanılmaz.
    • SWD yıldız topolojilerine izin verir

işlevsel olarak

  • SWD, özellikle mikro hata ayıklama için tasarlanmış ARM'a özgü bir protokoldür.
  • JTAG (Joint Test Action Group), büyük ölçüde yonga ve tahta testi için tasarlanmıştır. Sınır taramalarında , üretimdeki talaş / panolardaki hataları kontrol etmek için kullanılır . Mikros hata ayıklama ve yanıp sönme, zaman içinde uygulanmasında bir evrimdir.
  • JTAG, ARM dışında birçok mikrodenetleyici / işlemci mimarisi için kullanılıyor.

Genel Tartışma

JTAG, 2017 itibariyle, ARM dışı mikroskoplar, programcılar ve üretim hatları tarafından daha yaygın olarak desteklenmektedir. JTAG için programlayıcılar FT232H [*] koparmalar ve diğer programlama cihazları biçiminde ucuza sahip olabilirler . Ancak, SWD hızda ve ARM yongalarında hata ayıklamada diğer alanlarda belirgin bir avantaja sahiptir.

Testte JTAG'ın amaçlanan niteliğindeki bölünmesi ve hata ayıklamada SWD nedeniyle ARM, SWD pinlerini JTAG'ın saatine ve sıfırlama hatlarına eşleyen CoreSight teknolojisi ile SWJ-DP (seri kablo / jtag hata ayıklama portu) sağlar. SWJ-DP bu nedenle, her iki protokolün de aynı anda ya da JTAG ve SWD ile aynı programlayıcılarla aynı anda gerekmese de, zamanla çoğaltılması gerekmesine rağmen aynı fiziksel bağlantıda kullanılmasına izin verir.

Faydalı Referanslar



7

OP için biraz gecikmiş olabilirim, ama belki aynı soruyu diğer bazı insanlar için faydalı olabilir. Öyleyse, işte başlıyoruz (kişisel deneyim): SWD ile programlamak ve hata ayıklamak (hafızaları almak / haritaları kaydetmek, kırmak, belirli bir noktadan çalıştırmak vb.) Mümkündür. Eclipse'i burada GDB ile ~ 50 Euro karşılığında J-Link EDU aracılığıyla kullanmak. Bazı hatalar var (hedeflemeyi hata ayıklayıcı aracılığıyla sıfırlama, bazen bağlantı kurmayacak veya haritaları almayacak), ancak tuhaflıklar hakkında bilgi edindikten sonra nispeten ucuz ve kullanışlıdır


7

Eski soru, ancak cevapların hiçbiri performans karşılaştırmasını ele almıyor. SWD ve JTAG arasında ayarlanan özellik (bir CoreSight DAP kullanılırken) yeterince yakın olmasına rağmen, SWD dizileri yaklaşık olarak eşdeğer JTAG dizilerinden% 10 daha kısadır.

Çoğu durumda veri bant genişliğinde herhangi bir kayıp olmaz (özellikle akış, bant genişliğinin en önemli olduğu yer veya okuma yazar).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.