Nachdem ich diesen Artikel überflogen habe, frage ich mich, welche Vorteile das SWD-Debugging gegenüber dem JTAG-Debugging hat.
Ich verstehe, dass SWD weniger Drähte/Pins benötigt, weniger Platz einnimmt usw. Aber wie spielt es sich in Bezug auf Leistung, Funktionen und Kosten der Hardware-Programmierer/Debugger-Geräte ab? Kann Code in IDEs wie Eclipse immer noch gebrochen/angehalten und schrittweise durchlaufen werden?
Kann ein ARM-Chip mit der SWD-Schnittstelle programmiert werden, wie ich glaube, dass dies in JTAG möglich ist?
SWD sollte in der Lage sein, den ARM-Chipsatz zu programmieren, und Sie können Haltepunkte debuggen und hinzufügen. Das andere Gute an SWD ist, dass Sie den Serial Wire Viewer für Ihre printf-Anweisungen zum Debuggen verwenden können. Ich habe es nur mit dem Keil-Compiler verwendet.
JTAG wird ab 2017 von Mikros, Programmierern und Produktionslinien, die nicht von ARM stammen, in größerem Umfang unterstützt. Programmierer für JTAG sind günstig in Form von FT232H [*] Breakouts und ähnlichen Programmiergeräten zu haben. SWD hat jedoch einen deutlichen Vorteil in Bezug auf Geschwindigkeit und andere Bereiche beim Debuggen von ARM-Chips.
Aufgrund der Aufspaltung der Zweckbestimmung von JTAG beim Testen und SWD beim Debuggen stellt ARM SWJ-DP (Serial Wire/jtag Debug Port) über seine CoreSight-Technologie bereit, die SWD-Pins auf die Takt- und Reset-Leitungen von JTAG abbildet. SWJ-DP ermöglicht daher die Verwendung beider Protokolle auf derselben physikalischen Verbindung, wenn auch nicht unbedingt gleichzeitig oder mit denselben Programmierern, da JTAG und SWD zeitlich gemultiplext werden müssten.
Alte Frage, aber keine der Antworten spricht den Leistungsvergleich an. Obwohl der Funktionsumfang zwischen SWD und JTAG (bei Verwendung eines CoreSight-DAP) nahezu gleich ist, sind SWD-Sequenzen etwa 10 % kürzer als die entsprechenden JTAG-Sequenzen.
In den meisten Fällen gibt es keinen Verlust an Datenbandbreite (insbesondere beim Streaming von Lese- oder Schreibvorgängen, bei denen die Bandbreite am wichtigsten ist).
Ich bin vielleicht etwas zu spät für OP, aber vielleicht ist es für einige andere Leute mit der gleichen Frage nützlich. Also, los geht's (persönliche Erfahrung): Es ist möglich, mit SWD zu programmieren und zu debuggen (Speicher abrufen / Karten registrieren, unterbrechen, von einem bestimmten Punkt aus ausführen usw.). Verwenden Sie hier Eclipse mit GDB über J-Link EDU, was ~50 Euro kostet. Es gibt einige Fehler (Ziel über Debugger zurücksetzen, manchmal wird keine Verbindung hergestellt oder Karten abgerufen), aber es ist relativ billig und brauchbar, sobald Sie sich mit seinen Macken vertraut gemacht haben
B Peter
Superkatze
user_1818839
Gabriel Staples
Antonio