BEARBEITEN:
Ich habe die grundlegenden Fragen (z. B. was ist CMSIS-DAP
?) Beantwortet von Benutzer @Nipo. Auf dieser Grundlage habe ich meinen Beitrag logischer umstrukturiert. Hoffentlich werden auch die restlichen Fragen beantwortet :-)
Um einen Mikrocontroller zu programmieren und/oder zu debuggen, ist die folgende Vorgehensweise üblich:
Es gibt unzählige verschiedene Sonden auf dem Markt. Die Kommunikation zwischen Sonde und Mikrocontroller ist in den Protokollen SWD
und standardisiert JTAG
. Die Kommunikation zwischen Sonde und Leitrechner ist leider nicht standardisiert. Das macht die Arbeit von OpenOCD sehr schwierig. Diese Software, die auf dem Hostcomputer ausgeführt wird, versucht, eine Verbindung zur Sonde herzustellen. Stellen Sie sich vor, wie viel Arbeit die OpenOCD-Leute haben, um sie alle zu unterstützen!
ARM bemüht sich, diese USB-Kommunikation zwischen der Sonde und dem Host-Computer zu standardisieren.
CMSIS-DAP
ist die Spezifikation (oder Standard oder Protokoll oder ...) von ARM, die definiert, wie ein Programmierer/Debug-Probe aufgebaut werden soll. Nach meinem Verständnis spezifiziert es einige Hardware-Aspekte sowie das Kommunikationsprotokoll zwischen dem Host-Computer und der Sonde (1) .
FRAGE 1:
Wo ist die offizielle CMSIS-DAP
Spezifikation zu finden? Ich weiß, dass der GitHub von CMSIS-DAP
durch einen neuen GitHub von ersetzt wird DAPLink
. Aber vergessen wir nicht: DAPLink
ist lediglich eine Implementierung des Standards. Ich weiß nicht, wo ich den Standard selbst finden kann ...
ANTWORT:
Benutzer @Nipo hat die Links gepostet:
CMSIS-DAP
Seite: http://arm-software.github.io/CMSIS_5/DAP/html/index.htmlCMSIS-DAP
Details: http://arm-software.github.io/CMSIS_5/DAP/html/group__DAP__Commands__gr.html
(1) Ich glaube, dass die Kommunikation zwischen der Sonde und dem Host-Computer durch dieses CMSIS-DAP
Protokoll definiert wird, aber nicht die Kommunikation zwischen der Sonde und dem Mikrocontroller, da diese bereits entweder durch das JTAG
oder SWD
-Protokoll definiert ist.
Die SWDAP
Sonde ist eine Hardwareimplementierung und DAPLink
eine Firmwareimplementierung der CMSIS-DAP
Spezifikation. Offensichtlich DAPLink
läuft die Firmware auf der SWDAP
Hardware.
Ich liste die SWDAP
Ressourcen für Sie auf:
Und die DAPLink
Ressourcen:
FRAGE 2:
Die SWDAP
Probe führt die DAPLink
Firmware aus, also sollte sie sowohl SWD
als auch unterstützen JTAG
. Aber Herr Gorazd Kovacic von LTek hat mir in einer Mail geantwortet, dass die SWDAP
Sonde nur unterstützt SWD
. Ich glaube, er liegt falsch. Was denken Sie?
Hinweis: Ich kann es erst nächste Woche testen, wenn die richtige Hardware eintrifft.
ANTWORT:
Benutzer @Nipo sagt: „Alle Sonden, die die DAPLink-Implementierung als Kernfirmware verwenden, bieten denselben Funktionssatz.“ Die einzige Einschränkung liegt also in der Hardware. Wenn der Hardwarehersteller nicht die richtigen JTAG-Verbindungen bereitgestellt hat, haben Sie Pech.
Ich weiß, dass die Sonde für die Verwendung mit pyOCDSWDAP
gebaut wurde . Das bringt uns zu meiner dritten Frage:
FRAGE 3:
Kann die SWDAP
Sonde (und die Sonde) auch mit OpenOCDCMSIS-DAP
verwendet werden ? Oder nur mit pyOCD ? ANTWORT: Ich habe eine Mail von der Mailingliste der OpenOCD-Entwickler erhalten, um diese Frage zu beantworten. Herr Paul Fertser erwähnte die Konfigurationsdatei, die sich im Ordner befindet. Ich werde es nächste Woche testen, wenn meine Hardware ankommt.
cmsis-dap.cfg
openocd/scripts/interface/
Die CMSIS-DAP
Sonde von LTek ( https://l-tek.si/web-shop/cmsis-dap-debug-probe ) ist mir immer noch ein Rätsel. Da CMSIS-DAP
es sich nur um einen Standard handelt (oder nennen Sie es "Spezifikation" oder "Protokoll"), ist der Name der Sonde etwas verwirrend. Daher sollte es CMSIS-DAP
stattdessen -compliant probe genannt werden.
Damit kommen wir zur letzten Frage:
FRAGE 4:
Ich verstehe immer noch nicht, wie sich diese Sonde von der SWDAP
Sonde unterscheidet. Sie stammen beide vom selben Anbieter LTek und scheinen beide von ARM entwickelt worden zu sein.
ANTWORT:
Anscheinend ist diese Sonde nur eine Art Klon der SWDAP
Sonde, entspricht also dem CMSIS-DAP
Standard. Der Name dieser Sonde ist nur etwas irreführend.
CMSIS ist der generische Name für die von ARM spezifizierte Infrastruktur rund um Cortex-Prozessoren. Das Projekt, das wir heute als DAPLink kennen , begann eigentlich als mbedmicro/CMSIS-DAP , wir können mehrere Hinweise auf die Umbenennung in der Projekthistorie finden. Der Name „CMSIS-DAP“ wurde mehrdeutig, da es sowohl der Name für die Spezifikation als auch für die Implementierung von Mbed war.
Heute ist also CMSIS-DAP das Protokoll, DAPLink ist eine Implementierung dieses Protokolls.
CMSIS-DAP ist nicht das effizienteste Debugger-Protokoll in der JTAG/SWD-Welt, aber erledigt die Arbeit mit (sehr) vernünftigen Rechenressourcen auf der Sondenseite (dh Einstiegs-MCUs mit USB können es ausführen, wie billige LPC11s). CMSIS-DAP wird von OpenOCD und vielen anderen Tools auf der Hostseite unterstützt.
CMSIS-DAP spezifiziert sowohl JTAG- als auch SWD-Befehle, DAPLink bietet Unterstützung für beide.
Da es sich bei DAPLink um eine Implementierung mit freizügiger Lizenz handelt, kann es grundsätzlich ohne Mehrkosten überall eingesetzt werden. Viele verschiedene Anbieter erstellen Boards mit DAPLink-Firmware darauf, entweder allein (wodurch eine eigenständige Sonde wie Sie verlinkt wird) oder zusammen mit einer Ziel-CPU (wie wir sie auf Devboards haben). Alle Hardwareimplementierungen von DAPLink betten dieselbe Firmware mit denselben Funktionen ein, und Sie sollten in der Lage sein, DAPLink neu zu erstellen und bei Bedarf zu aktualisieren.
CMSIS-DAP ist im entsprechenden Dokument auf der ARM-Softwareseite definiert . Alle Details finden Sie im Abschnitt Referenzen .
LTek kann seine Boards benennen, wie sie wollen, auch wenn der Name etwas irreführend ist.
Wie ich oben geschrieben habe, bieten alle Sonden, die die DAPLink-Implementierung als Kernfirmware verwenden, dieselben Funktionen.
Was die SWD/JTAG-Unterstützung betrifft, ist die einzige Einschränkung, die Sie möglicherweise auf einigen Boards haben, die Hardware: Wenn die Hersteller keine Anschlüsse für TDI und TDO bereitstellen, haben Sie Pech, JTAG damit zum Laufen zu bringen.
Über die SWDAP-Sonde heißt es auf der eigenen Seite von ARM : „Das SWDAP ist ein offenes Hardware-Design, das als Teil des mbed-HDK geliefert wird“, weshalb LTek in der Lage ist, einen wörtlichen Klon bereitzustellen.
DAPLink gibt an, dass es das CMSIS-DAP-Protokoll verwendet, das von OpenOCD unterstützt wird
CMSIS-DAP ist, wie der Name schon sagt, ein Protokoll und eine Firmware, die von ARM entwickelt wurden – dem Unternehmen, das die Prozessorkerne entwickelt. Die Firmware selbst unterstützt sowohl SWD als auch JTAG. http://www.keil.com/pack/doc/cmsis/DAP/html/index.html?_ga=2.84588765.557139549.1541455299-619225292.1541455299
Gemessen an der PCB-Kennzeichnung ( "ARM University" ) ist die CMSIS-DAP-Sonde eine Referenzimplementierung von ARM oder deren Tochterunternehmen.
Chris Stratton