Forum: Mikrocontroller und Digitale Elektronik J-Link detekt moeglich?


von Vanye R. (vanye_rijan)


Lesenswert?

Moin Leute,

Hat jemand eine brilliante Idee wie man in einem STM32L451 nach dem 
Reset erkennen kann ob ein Segger angeschlossen ist?

Hintergrund: Ich hab eine auf Stromsparen optimierte Schaltung wo der 
Controller nur sehr kurz was macht und dann sofort den Controller in den 
deepest Sleep schickt. Da hat der Segger keine Chance das Teil unter 
Kontrolle zu bekommen und ich muss den erst jedesmal mit JLinkSTM32Exe 
ein brainwashing verpassen.
Es waere eigentlich cooler wenn der Controller das merken wuerde und 
dann nicht entschlummert.
Klar, ich koennte irgendwo einen Pin abfragen, aber vielleicht gibt es 
noch eine elegantere Loesung?

Vanye
von Hans W. (hanswieland)


Lesenswert?

Füge am Anfang des Programms ein 5s Delay ein, bevor er in den Sleep 
geht. Dann jann sich der Debugger vorher verbinden und auch verhindern, 
dass der CPU Takt beim Schlafen deaktiviert wird.
: Bearbeitet durch User
von Vanye R. (vanye_rijan)


Lesenswert?

> Füge am Anfang des Programms ein 5s Delay ein, bevor er in den Sleep
> geht.

Das ist natuerlich meine aktuelle Loesung, aber nicht akzeptabel weil 
ich nicht 5s lang kostbare Energie verbraten will. Der Strom kommt ja 
nicht aus der Steckdose. .-)

Vanye
von Hans W. (hanswieland)


Lesenswert?

Vanye R. schrieb:
> weil ich nicht 5s lang kostbare Energie verbraten will.

Muss dein Dingsbums denn immer mit Reset neu starten? Aus dem Sleep 
Modus kann man doch ohne Reset Aufwachen, si dass das Programm nicht neu 
starten muss. Die 5s würden nur den ersten Start nach dem Einschalten 
(und Reset) betreffen.
von Dieter S. (ds1)


Lesenswert?

Dafür gibt es z.B. die ARM Core Debug Register. Und wenn die 
Suchmaschine nicht kaputt ist findet man u.a. das hier ("Lifehack: 
detecting debugger connection for Cortex-M0 & Ozone"):

https://m0agx.eu/detecting-debugger-connection-on-cortex-m0.html
von Hans W. (hanswieland)


Lesenswert?

Dieter S. schrieb:
> Dafür gibt es z.B. die ARM Core Debug Register.

Geht das DEBUGEN Bit denn schon auf High, bevor der Debugger die 
logische Verbindung aufgebaut hat? Sonst nützt das nichts.
von Frank K. (fchk)


Lesenswert?

Ghet es um Debuggen oder nur neu Flashen? Flashen kannst Du auch mit dem 
internen ROM-Bootloader, der mit BOOT0 aktiviert wird. Und zum Debuggen 
wirst Du sicher einen extra Build mit -O0 und -g und -DDEBUG haben.

fchk
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.