Depuração JTAG vs SWD

41

Depois de percorrer este artigo , pergunto-me quais são os benefícios da depuração SWD sobre a depuração JTAG?

Entendo que o SWD usa menos fios / pinos, ocupa menos espaço etc. Mas como é o desempenho em termos de desempenho, recursos e custo dos dispositivos de programador / depurador de hardware? O código ainda pode ser apontado / pausado e percorrido em IDEs como o Eclipse?

Um chip ARM pode ser programado usando a interface SWD, como acredito que possa ser feito no JTAG?

josef.van.niekerk
fonte
Os chips baseados em ARM com os núcleos mais recentes (Cortex, por exemplo) podem ser programados e depurados via SWD.
B Pete
@BPete: Descobri que com o SWD é difícil depurar chips baseados em ST que usam o modo de suspensão; nossas pranchas atuais não têm os pinos disponíveis para o JTAG, mas eu queria saber se o JTAG poderia ser melhor nesse sentido.
Supercat
2
Esse (SWD) se parece um pouco com a interface Spy Bi-Wire que a TI colocou em um subconjunto de seus processadores MSP430. É semelhante a JTAG de 2 fios (mais potência e terra) com SBWTCLK e SBWTDIO multiplexados em dois pinos não GPIO (TEST e RST / NMI) em um dispositivo de exemplo. Suportado pelo devkit EZ430. E ele (SBW) suporta stepping e breakpoints! Não sei se os ARMs da própria TI têm a mesma interface, mas seria interessante se houvesse comunalidade suficiente entre eles para compartilhar ferramentas de programação / depuração.
Brian Drummond
O link do seu artigo está morto, mas talvez este fosse o artigo? arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

Respostas:

12

O SWD deve poder programar o chipset ARM e você pode depurar e adicionar pontos de interrupção. A outra coisa boa sobre SWD é que você pode usar o visualizador de fio serial para suas instruções printf para depuração. Eu apenas o usei com o compilador Keil.

user468662
fonte
Veja este link no visualizador de fio serial. keil.com/download/files/swv_on_cortex-m3.pdf
user468662
37

Eletricamente

  • Contagem de pinos
    • JTAG requer 4 linhas de sinal
    • SWD requer apenas 2 linhas de sinal
    • A interface JTAG de 2 fios especificada na IEEE 1149.7 diminui a contagem de pinos, mas não parece estar amplamente disponível em muitos ICs. Também reduz a largura de banda.
  • Topologia
    • O JTAG usa uma configuração em cadeia para suas linhas de dados entre chips. A velocidade da JTAG é, portanto, limitada pelo chip mais lento da cadeia. Suas linhas de redefinição e limpeza são ativadas (não encadeadas), o que permite interoperabilidade via SWDJ-DP (consulte a discussão abaixo).
    • O JTAG de 2 fios permite uma topologia em estrela, mas não é usada com frequência.
    • SWD permite topologias em estrela

Funcionalmente

  • SWD é um protocolo específico de ARM projetado especificamente para micro depuração.
  • O JTAG (Grupo de Ação para Testes) foi projetado principalmente para testes de chips e placas. É usado para varreduras de limites , verificando falhas em chips / placas em produção. Depurar e piscar micros foi uma evolução em sua aplicação ao longo do tempo.
  • O JTAG está sendo usado para várias arquiteturas de microcontrolador / processador, além do ARM.

Discussão geral

O JTAG é mais amplamente suportado, a partir de 2017, por micros, programadores e linhas de produção não-ARM. Os programadores para JTAG podem ser adquiridos a preço baixo na forma de FT232H [*] e outros dispositivos de programação. No entanto, o SWD tem uma vantagem distinta na velocidade e em outras áreas na depuração de chips ARM.

Devido à divisão na natureza proposta do JTAG nos testes e do SWD na depuração, o ARM fornece SWJ-DP (porta serial / porta de depuração jtag) por meio de sua tecnologia CoreSight, que mapeia os pinos do SWD no relógio e nas linhas de redefinição do JTAG. Portanto, o SWJ-DP permite usar ambos os protocolos na mesma conexão física, embora não necessariamente ao mesmo tempo ou com os mesmos programadores que JTAG e SWD precisem ser multiplexados no tempo.

Referências úteis

retroespalhado
fonte
7

Talvez eu esteja um pouco atrasado para o OP, mas talvez seja útil para outras pessoas com a mesma pergunta. Então, aqui vamos nós (experiência pessoal): É possível programar e depurar (buscar mapas de memória / registro, interromper, executar a partir de um ponto específico, etc.) com SWD. Usando o Eclipse aqui com GDB via J-Link EDU, que custa ~ 50 Euros. Existem alguns bugs (redefinir o destino via depurador, às vezes não se conectam ou buscam mapas), mas é relativamente barato e utilizável, quando você se familiariza com as peculiaridades

stiebrs
fonte
7

Pergunta antiga, mas nenhuma das respostas aborda a comparação de desempenho. Embora o conjunto de recursos entre SWD e JTAG (ao usar um CoreSight DAP) seja quase o mesmo, as sequências SWD são aproximadamente 10% mais curtas que as sequências JTAG equivalentes.

Na maioria dos casos, não há perda de largura de banda de dados (particularmente o fluxo de leituras ou gravações onde a largura de banda é mais importante).

Sean Houlihane
fonte