Forum: Mikrocontroller und Digitale Elektronik STM32 mit ST-Link debuggen: Timer einfrieren


von Patrick B. (p51d)


Lesenswert?

Hallo miteinander

Ich nerve mich nun schon eine Weile daran, dass ich es nicht schaffe 
mein Programm zu debuggen, ohne dass die Zähler im Hintergrund munter 
weiter laufen.
Es gibt sicher Fälle, bei denen die Peripherie nicht stoppen darf, aber 
bei mir will ich eine Regler-Funktion bauen, die Pulse ausgibt. Die 
Pulse selber werden wiederum über einen Timer gezählt (soll als Ist-Wert 
dienen).
Wenn ich jetzt in der Funktion bin und Schritt für Schritt vorgehe und 
dabei die beiden Zähler einfach weiter laufen, ist es schier unmöglich 
die Variablen zu analysieren.

Die Cortex bieten hierzu auch ein schönes Register, um die gewünschte 
Eigenschaft zu erreichen:
- DBGMCU_CR
- DBGMCU_APB1_FZ
- DBGMCU_APB2_FZ

Die stdPeriph_Lib von ST bieten auch wunderbare Funktionen für den 
Zugriff an. Da dachte ich mir, wunderbar alle Probleme gelöst. Bis ich 
dann nach weiterem Fluchen einen Blick ins Datenblatt geworfen habe:
> It is asynchronously reset by the POR (and not the system reset).
> It can be written by the debugger under system reset.

Die Suche ging dann weiter: In den verschiedenen IDE's (Atollic, CooCox, 
IAR...) habe ich nirgends eine Möglichkeit gefunden, dem ST-Link zu 
sagen, wie ich den Debug-Modus gerne haben möchte.

Ist dies überhaupt irgendwie Möglich? Ich hoffe schwer, dass mir hier 
jemand weiterhelfen kann. Momentan bin ich fast am verzweifeln (Timer 
jedesmal einzel zu deaktiviern und wieder zu aktivieren kanns nicht 
sein).

Besten Dank für die Hilfe
MFG
Patrick

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Schau Dir mal RCC_AHB1LPENR und Konsorten an.

von Patrick B. (p51d)


Lesenswert?

Besten Dank für die Antwort, aber

Patrick B. schrieb:
> (Timer
> jedesmal einzel zu deaktiviern und wieder zu aktivieren kanns nicht
> sein)

entspricht in etwa dem, was du vorschlagst. Ich möchte, dass der 
Debugger die Kontrolle hat, und ich bequem sagen kann, welche Peripherie 
er denn bei einem Breakpoint auch anhalten soll (was ja eigentlich mit 
den genannten Regiser vom Kern her möglich wäre, nur dass diese eben vom 
Debugger und nicht von der Software geschrieben werden können).

Gruss

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.