PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWD (serial Wire Debug) Timing



Siro
02.03.2018, 10:37
Einen schönen, kalten guten Morgen zusammen,

Ich wundere mich etwas über das Verhalten meiner CPU beim Breakpoint setzen:

In meinem Gerät befindet sich ein NXP-Controller vom Typ:LPC1768
Da es ein medizinisches Gerät ist, gibt es einen zweiten Prozessor zur Überwachung.
Beide CPU's senden sich Daten zur Überwachung und beide haben die Möglichkeit
das Gerät in einen Sicherheitszustand zu versetzen.

Beim Debuggen mittels SWD ist mir nun mehrfach aufgefallen, dass beim Setzen eines Breakpoints
ein Fehler erkannt wird und das Gerät in den Sicherheistzustand übergeht.

Nun habe ich festgestellt, dass das Setzen eines Breakpoints länger als 25 Millisekunden dauern muss,
wo die CPU "vermutlich" gestoppt/ausgebremmst wird, ohne dass der Breakpoint überhaupt erreicht wird.

Verbunden ist die CPU über das SWD (Serial Wire Debug) Interface über ein LPC-Link Modul mit der Entwicklungsumgebung
LPCXpresso bzw. MCUXpresso.

Nun kommt meine Frage:

Ist das tatsächlich so, dass beim Setzen eines Breakpoints die CPU angehalten/ausgebremmst wird,
ich dachte es läuft direkt in Hardware ab.

{edit}
Ich habe eben eine Testsoftware geschrieben und mit dem Ossi gemessen um die Zeit zu ermitteln,
Die CPU steht tatsächlich für 172 ms beim Setzen eines Breakpoints.
Damit hat er Überwachungsprozessor natürlich schon zugeschlagen....
Ist der Breakpoint erstmal gesetzt, scheint das Debugging aber tatsächlich in Echtzeit zu laufen,
Verzögerungen bis zum Eintreffen des Breaks sind nicht erkennbar.

Siro