mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F4 Flag für "debugger conncted"


Autor: Reginald L. (Firma: HS Ulm) (reggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huhu!

Gibt es eine Möglichkeit das laufende Programm erkennen zu lassen ob 
gerade Debugged wird oder nicht? Konnte in den DBG-Registern nichts dazu 
finden.

Danke und Grüße
Reggie

Autor: Jan K. (madengineer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das wäre echt mal interessant zum Beispiel für Debugausgaben via 
Semihosting. Wenn der Debugger nicht dran ist, dann friert das Programm 
ein, da die Strings ja über Sigtraps übertragen..

Autor: Reginald L. (Firma: HS Ulm) (reggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan K. schrieb:
> Ja das wäre echt mal interessant zum Beispiel für Debugausgaben via
> Semihosting.
Genau darum geht es mir hier. Ich nutze eine optische Rückmeldung im 
Fehlerfall. Beim Debuggen nutze ich ein paar asm breakpoints und 
Semihosting. Die möchte ich anfahren, wenn der Debugger dran ist, 
ansonsten soll eben nur die optische Rückmeldung gegeben werden.

Autor: Niklas G. (erlkoenig) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
* C_DEBUGEN in DHCSR
  Ist allerdings z.B. auch gesetzt wenn der Debugger nur verbunden ist,
  aber nichts tut und das Programm "normal" läuft.

Für die Ausgabe per SWO gibts allerdings noch andere Bits:
* ITMENA in ITM_TCR
* ITM_TER0-255
Wenn man diese Bits prüft, insbesondere das für den genutzten Trace 
Port, bevor man Ausgaben per SWO macht, wird das Programm nicht 
angehalten wenn kein Debugger verbunden ist. Ein Beispiel ist bei Segger 
zu sehen:
http://forum.segger.com/index.php?page=Thread&post...

Oder hier:
https://www.mikrocontroller.net/wikifiles/a/af/New... 
in Zeilen 67-75. Das drumherum in dieser Datei ermöglicht die direkte 
Nutzung von printf() via SWO beim GCC.

Autor: Nop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nutze dazu einfach einen Debug-Build mit Debug-Defines. Ganz 
genauso, wie ich das auf dem PC auch mache.

Autor: Reginald L. (Firma: HS Ulm) (reggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niklas G. schrieb:
> * C_DEBUGEN in DHCSR
Hey das ist ein Anfang, Danke.

Niklas G. schrieb:
> Ist allerdings z.B. auch gesetzt wenn der Debugger nur verbunden ist,
>   aber nichts tut und das Programm "normal" läuft.
Das ist natürlich doof -.-

Niklas G. schrieb:
> Für die Ausgabe per SWO gibts allerdings noch andere Bits:
> * ITMENA in ITM_TCR
> * ITM_TER0-255
> Wenn man diese Bits prüft, insbesondere das für den genutzten Trace
> Port, bevor man Ausgaben per SWO macht, wird das Programm nicht
> angehalten wenn kein Debugger verbunden ist.
Das hört sich wiederum gut an, das guck ich mir gleich an, Danke!

Nop schrieb:
> Ich nutze dazu einfach einen Debug-Build mit Debug-Defines. Ganz
> genauso, wie ich das auf dem PC auch mache.
Ja, andere Möglichkeiten gibt es genug :) Ich bin aber seeeeehr bequem 
:)

Autor: Reginald L. (Firma: HS Ulm) (reggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also C_DEBUGEN steht bei mir durchgehend auf 1, auch bei abgestecktem 
Debugger.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.