Forum: Mikrocontroller und Digitale Elektronik wird nach Watchdog alles resetet?


von Hako (Gast)


Lesenswert?

Hi,

ich benutze einen Freescale MC5600E µC. Wenn ich den Wathcdog aktiviere 
wird's auch ein Hardware-Reset durchgeführt.

Wird den nach einem Watchdog-Reset alles zurückgesetzt oder habe ich 
eine Möglichkeit einige Variablen so zu lassen, wie sie sind?

Wenn ich eine Variable in der Watchdog-ISR inkrementiere, wird es nach 
dem Reset auch zurückgetzt oder bleit es erhalten?

Wie kann ich einige Register so lassen wie sie sind oder habe ich durch 
einen Watchdog-Reset keine chance?

Vielen Dank

von Falk B. (falk)


Lesenswert?

@ Hako (Gast)

>Wird den nach einem Watchdog-Reset alles zurückgesetzt oder habe ich
>eine Möglichkeit einige Variablen so zu lassen, wie sie sind?

Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.

>Wenn ich eine Variable in der Watchdog-ISR inkrementiere, wird es nach
>dem Reset auch zurückgetzt oder bleit es erhalten?

>Wie kann ich einige Register so lassen wie sie sind oder habe ich durch
>einen Watchdog-Reset keine chance?

Die CPU-Register bleiben auch unverändert.

MFG
Falk

von Hako (Gast)


Lesenswert?

>Die CPU-Register bleiben auch unverändert.

ja aber durch den Reset fängt mein Programm von ganz Anfang an, dh. wo 
die Initialisierung stattfindet. Wird es dadurch nicht alles 
zurückgesetz?

wenn ich eine static/globale Variable habe und ich am Programmstart die 
Varibalen initialisiere, werden sie nicht immer wieder neu 
initialisiert?

>Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.
Heißt es dass der Programmierer dafür verantwortlich ist, nach einem 
Reset, alles zurückzusetzen, was zurückgesetzt werden müsste?

von Karl H. (kbuchegg)


Lesenswert?

Es könnte hilfreich sein, wenn du die Programmiersprache
nennst in der du programmierst.

Was die CPU macht, wenn ein Watchdog-Reset ausgelöst wird
ist eine Sache. Welche Vorgaben aber eine Programmiersprache
hat, wenn das Runtime System das Programm hochfährt ist eine
andere Sache.
In C ist es so, dass der Compiler dafür sorgen muss, dass
alle globalen/static Variablen definiert auf 0 gesetzt werden.

von Falk B. (falk)


Lesenswert?

@ Hako (Gast)

>ja aber durch den Reset fängt mein Programm von ganz Anfang an, dh. wo

Ja logisch, ist ja schliesslich ein RESET.

>die Initialisierung stattfindet. Wird es dadurch nicht alles
>zurückgesetz?

Klar. Aber du kannst ja GANZ am Anfang das MCUSR (oder so ähnlich ) 
auslesen und prüfen, obe es ei Watchdog-Reset war. Dan kannst du 
entsprechend normal starten oder ohne initialisierung. In Assembler 
einfach, in C muss man eine Funktion in die init Sektionen bringen. 
Siehe Doku der libc.

>wenn ich eine static/globale Variable habe und ich am Programmstart die
>Varibalen initialisiere, werden sie nicht immer wieder neu
>initialisiert?

Ja, siehe oben.

>>Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.
>Heißt es dass der Programmierer dafür verantwortlich ist, nach einem
>Reset, alles zurückzusetzen, was zurückgesetzt werden müsste?

Logisch, war aber schon immer so. In C macht das der Compiler.

MFG
Falk

von Hako (Gast)


Lesenswert?

>Es könnte hilfreich sein, wenn du die Programmiersprache
>nennst in der du programmierst.
ich programmiere  in C

>Siehe Doku der libc
was ist ein libc? (peinlich aber ich weiß es nicht :-$)

>Dan kannst du entsprechend normal starten oder ohne initialisierung

so werde ich auch vorgehen ;-)

DANKE

von Falk B. (falk)


Lesenswert?

@ Hako (Gast)

>was ist ein libc? (peinlich aber ich weiß es nicht :-$)

Das ist die Bibliohek für den AVR, wenn du mit WINAVR programmierst.

MFG
Falk

von Severino R. (severino)


Lesenswert?

@Falk Brunner:

Falk Brunner wrote:
> Das ist die Bibliohek für den AVR, wenn du mit WINAVR programmierst.

Hako (Gast) wrote:
> ich benutze einen Freescale MC5600E µC.

MC5600E != AVR ?

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.