Forum: Mikrocontroller und Digitale Elektronik Debug-Flag at Runtime


von DebugVerbesserer (Gast)


Lesenswert?

Konstellation: AVR Controller, AVR Studio 4.xx oder ATMEL Studio 7.xx

Ist es möglich - ohne ein Projekt neu zu compilieren - bei laufend
abzuarbeitendem Code abzufragen ob gerade der Debugger (JTAG ICE MKII
oder ATMEL ICE) die Überhand hat oder der Prozessor standalone läuft?

Hintergrund wäre: ich würde gerne - wie gesagt "at runtime" und eben
ohne jeweils neu zu compilieren - in einer if-else-Abfrage entscheiden
wollen ob nun eine eine timergesteuerte Delay-Routine ausgeführt werden
soll oder nicht. Bei solchen Routinen lässt sich vielleicht durch
geschickte Programmierung das Warten umgehen wenn die Timer
weiterlaufen, bei _delay_ms(..) hat man aber keine Chance mehr.

Viele kennen vielleicht das Problem dass (naturgemäss) unter Debugger-
Einfluss manche Sache wie Delays "etwas zäh" ablaufen.....

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

DebugVerbesserer schrieb:
> Hintergrund wäre: ich würde gerne - wie gesagt "at runtime" und eben
> ohne jeweils neu zu compilieren - in einer if-else-Abfrage entscheiden
> wollen ob nun eine eine timergesteuerte Delay-Routine ausgeführt werden

 Mach das doch einfach mit einem Schalter an irgendeinem unbenutzten
 PortPin und Masse.
 Pin als Eingang deklarieren, Pullup einschalten, wenn PortPin == 0,
 Delay verkurzen oder nicht ausfuhren.

von дамрфкнилх (Gast)


Lesenswert?

Entweder man ist am Funktionalitaet singlesteppen, oder am 
Echtzeitablauf.

Die Funktionalitaet sollte man sowieso ohne das Drumherum geprueft 
haben.

Nachdem die funktionalitaet mal tut, muss man Echtzeitdebuggen. Dies 
macht man zB durch kommunikation, Indem man per Kommunikation
- variablen abfragen kann
- variablen periodisch sendet
- einen Subprozess ab-/zuschaltet

Falls man die Zeit zur Kommunikation nicht hat, weil der Prozess zu 
schnell ist, kann man zB einen DAC aufstecken. zB ueber einen 4 pol 
pfostenstecker, wie den Programmieradapter, per SPI einen 8 kanal 8bit 
DAC mit Werten ansteuern. Diese 8 Analogkanaele kann man dann bequem am 
Oszilloskop anschauen, und sich so Details zu Regelungsprozessen 
anschauen.

von DebugVerbesserer (Gast)


Lesenswert?

Marc V. schrieb:
> Mach das doch einfach mit einem Schalter an irgendeinem unbenutzten
>  PortPin und Masse.

Ja, an so etwas habe ich auch schon gedacht.

Am schönsten wäre es wenn man am JTAG Port eine Signatur lesen
könnte, das würde keinen Platz/Hardware brauchen und automatisch
immer da sein .... weiss aber nicht ob so etwas definiert ist.

von DebugVerbesserer (Gast)


Lesenswert?

Ich pushe mal nach vorne, vielleicht lesen noch ein paar andere
Leute das Thema und wissen was .....

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.