Налагодження JTAG проти SWD


41

Переглянувши цю статтю , мені цікаво, які переваги налагодження SWD над налагодженням JTAG?

Я розумію, що SWD використовує менше проводів / штифтів, займає менше місця і т. Д. Але як це відтворюється з точки зору продуктивності, особливостей та вартості апаратних програмістів / пристроїв налагодження? Чи може код все-таки бути перерваним / призупиненим та перетвореним у IDE, як Eclipse?

Чи можна програмувати чіп ARM за допомогою інтерфейсу SWD, як я вважаю, це можна зробити в JTAG?


Фішки на основі ARM з більш новими ядрами (наприклад, Cortex) можна запрограмувати та налагодити через SWD.
Б Піт

@BPete: я виявив, що за допомогою SWD важко налагоджувати мікросхеми на основі ST, які використовують режим сну; нинішні дошки не мають шпильок для JTAG, але мені було цікаво, чи може JTAG бути кращим у цьому плані?
supercat

2
Це (SWD) трохи схоже на взаємодію шпигунських бі-дротів, яку TI розмістив на підмножині процесорів MSP430. Це двожильний JTAG-подібний (плюс потужність і земля) з мультиплексованими SBWTCLK та SBWTDIO на двох не-GPIO-штифтах (TEST та RST / NMI) на прикладі пристрою. Підтримується девкітом EZ430. І це (SBW) підтримує крокові та проривні точки! Я не знаю, чи мають власні ARM-адреси TI однаковий інтерфейс, але було б цікаво, якби між ними було достатньо спільності для спільного використання програм програмування / налагодження.
Брайан Драммонд

Ваша посилання на статтю мертва, але, можливо, це була стаття? arm.com/files/pdf/Serial_Wire_Debug.pdf
Габріель

Відповіді:


12

SWD повинен мати можливість програмувати чіпсет ARM, плюс ви можете налагоджувати та додавати точки прориву. Інша хороша річ у SWD - це те, що ви можете використовувати переглядач послідовних проводів для своїх операторів printf для налагодження. Я використовував його лише з компілятора Keil.


Подивіться на це посилання на переглядачі послідовних проводів. keil.com/download/files/swv_on_cortex-m3.pdf
user468662

37

Електрично

  • Підрахунок контактів
    • JTAG вимагає 4 сигнальних ліній
    • SWD вимагає лише 2 сигнальних лінії
    • Двопровідний інтерфейс JTAG, вказаний в IEEE 1149.7, зменшує кількість контактів, але, здається, не є широко доступним у багатьох ІМС. Це також зменшує пропускну здатність.
  • Топологія
    • JTAG використовує конфігурацію ланцюга ромашок для своїх ліній даних між чіпами. Швидкість JTAG, таким чином, обмежена найповільнішою фішкою ланцюга. Його скидання та чіткі лінії будуються (не прикуті), однак це дозволяє взаємодіяти через SWDJ-DP (див. Обговорення нижче).
    • Двопровідний JTAG дозволяє проводити зіркову топологію, але вона використовується не часто.
    • SWD дозволяє проводити зіркові топології

Функціонально

  • SWD - специфічний для ARM протокол, розроблений спеціально для мікроналагодження.
  • JTAG (Joint Test Action Group) була розроблена в основному для тестування мікросхем і плат. Він використовується для граничного сканування , перевірки несправностей мікросхем / дощок у виробництві. Налагодження та миготливий мікросхем стало еволюцією в його застосуванні з часом.
  • JTAG використовується для багатьох архітектур мікроконтролерів / процесорів, крім ARM.

Загальне обговорення

Станом на 2017 рік JTAG отримує більш широку підтримку мікро-, программістів та виробничих ліній, що не є ARM. Програмісти для JTAG можуть бути дешевими у вигляді проривів FT232H [*] та інших таких пристроїв програмування. Однак SWD має чітку перевагу у швидкості та інших областях у налагодженні ARM-чіпів.

Завдяки розбиттю цільового характеру JTAG у тестуванні та SWD у налагодженні, ARM забезпечує SWJ-DP (послідовний провід / порт jtag для налагодження) за допомогою своєї технології CoreSight, яка відображає шпильки SWD на тактові години та лінії скидання JTAG. Таким чином, SWJ-DP дозволяє використовувати обидва протоколи на одному фізичному з'єднанні, хоча необов'язково одночасно або з тими ж програмістами, що і JTAG та SWD, повинні були би бути мультиплексовані у часі.

Корисні довідники



7

Я можу трохи пізно піти на ОП, але, можливо, це стане в нагоді для інших людей з тим же питанням. Отже, ось ми (особистий досвід): Можна програмувати та налагоджувати (витягувати пам'ять / реєструвати карти, перерву, біг з конкретної точки тощо) за допомогою SWD. Використовуючи Eclipse тут з GDB через J-Link EDU, що коштує ~ 50 євро. Є деякі помилки (скидання цілі за допомогою налагоджувача, іноді не підключати чи витягувати карти), але це відносно дешево і зручно, коли ви ознайомитесь з цим химерністю


7

Старе запитання, але жодна з відповідей не стосується порівняння ефективності. Хоча набір функцій між SWD та JTAG (при використанні DAP CoreSight) майже однаковий, послідовності SWD приблизно на 10% коротші, ніж еквівалентні послідовності JTAG.

У більшості випадків втрата пропускної здатності даних не втрачається (особливо потокове зчитування чи запис, де пропускна здатність є найбільш важливою).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.