JTAG vs debug SWD


41

Dopo aver sfogliato questo articolo , mi chiedo quali sono i vantaggi del debug SWD rispetto al debug JTAG?

Comprendo che SWD utilizza meno fili / pin, occupa meno spazio, ecc. Ma come funziona in termini di prestazioni, funzionalità e costi dei dispositivi hardware di programmazione / debugger? Il codice può ancora essere interrotto / messo in pausa e verificato in IDE come Eclipse?

È possibile programmare un chip ARM utilizzando l'interfaccia SWD, come credo possa essere fatto in JTAG?


I chip basati su ARM con i core più recenti (Cortex, ad esempio) possono essere programmati e sottoposti a debug tramite SWD.
B Pete,

@BPete: ho scoperto che con SWD è difficile eseguire il debug di chip basati su ST che usano la modalità sleep; le nostre schede attuali non hanno i pin disponibili per JTAG, ma mi chiedevo se JTAG potesse essere migliore al riguardo?
supercat

2
Questo (SWD) assomiglia un po 'all'interfaccia Spy Bi-Wire che TI ha messo su un sottoinsieme dei loro processori MSP430. È un JTAG a 2 fili simile (più alimentazione e terra) con SBWTCLK e SBWTDIO multiplexati su due pin non GPIO (TEST e RST / NMI) su un dispositivo di esempio. Supportato dal devkit EZ430. E (SBW) supporta stepping e breakpoint! Non so se i propri ARM di TI abbiano la stessa interfaccia, ma sarebbe interessante se ci fosse abbastanza comunanza tra loro per condividere strumenti di programmazione / debug.
Brian Drummond,

Il link al tuo articolo è morto, ma forse questo era l'articolo? arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

Risposte:


12

SWD dovrebbe essere in grado di programmare il chipset ARM e inoltre è possibile eseguire il debug e aggiungere punti di interruzione. L'altra cosa positiva di SWD è che puoi usare il visualizzatore di fili seriali per le tue istruzioni printf per il debug. L'ho usato solo con il compilatore Keil.


Guarda questo link sul visualizzatore di fili seriali. keil.com/download/files/swv_on_cortex-m3.pdf
user468662

37

elettricamente

  • Pin Count
    • JTAG richiede 4 linee di segnale
    • SWD richiede solo 2 linee di segnale
    • L'interfaccia JTAG a 2 fili specificata in IEEE 1149.7 riduce il conteggio dei pin ma non sembra essere ampiamente disponibile su molti circuiti integrati. Riduce anche la larghezza di banda.
  • Topologia
    • JTAG utilizza una configurazione daisy chain per le sue linee di dati tra i chip. La velocità di JTAG è quindi limitata dal chip più lento sulla catena. Le sue linee di reset e clear sono bused (non concatenate), tuttavia ciò consente l'interoperabilità tramite SWDJ-DP (vedere la discussione di seguito).
    • Il JTAG a 2 fili consente una topologia a stella, ma non viene usato spesso.
    • SWD consente topologie a stella

funzionalmente

  • SWD è un protocollo specifico ARM progettato specificamente per il micro-debugging.
  • JTAG (Joint Test Action Group) è stato progettato principalmente per i test su chip e schede. Viene utilizzato per le scansioni al contorno , controllando i guasti nei chip / schede in produzione. Il debugging e il flashing dei micro è stato un'evoluzione della sua applicazione nel tempo.
  • JTAG è in uso per più architetture di microcontrollori / processori oltre a ARM.

Discussione Generale

JTAG è supportato più ampiamente, a partire dal 2017, da micro, programmatori e linee di produzione non ARM. I programmatori per JTAG possono essere acquistati a buon mercato sotto forma di breakout FT232H [*] e altri dispositivi di programmazione simili. Tuttavia, SWD ha un netto vantaggio in termini di velocità e di altre aree nel debug dei chip ARM.

A causa della divisione nella natura intenzionale di JTAG nei test e SWD nel debug, ARM fornisce SWJ-DP (porta seriale / debug jug) tramite la sua tecnologia CoreSight che mappa i pin SWD sull'orologio JTAG e le linee di ripristino. SWJ-DP consente quindi di utilizzare entrambi i protocolli sulla stessa connessione fisica anche se non necessariamente contemporaneamente o con gli stessi programmatori di cui JTAG e SWD dovrebbero essere multiplexati nel tempo.

Riferimenti utili



7

Potrei essere un po 'troppo tardi per OP, ma forse sarà utile per altre persone con la stessa domanda. Quindi, eccoci qui (esperienza personale): è possibile programmare ed eseguire il debug (recuperare memoria / registrare mappe, interrompere, eseguire da un punto specifico, ecc.) Con SWD. Usando Eclipse qui con GDB tramite J-Link EDU, che vale per ~ 50 euro. Ci sono alcuni bug (reimpostazione del target tramite debugger, a volte non si connette o recupera le mappe), ma è relativamente economico e utilizzabile, una volta che hai familiarità con le sue stranezze


7

Vecchia domanda, ma nessuna delle risposte affronta il confronto delle prestazioni. Sebbene le funzionalità impostate tra SWD e JTAG (quando si utilizza un DAP CoreSight) siano abbastanza simili, le sequenze SWD sono circa il 10% più brevi rispetto alle sequenze JTAG equivalenti.

Nella maggior parte dei casi non vi è alcuna perdita di larghezza di banda dei dati (in particolare lo streaming legge o scrive dove la larghezza di banda è più importante).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.