wird nach Watchdog alles resetet?

Gast #732781
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
#732796
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
Gast #733283
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?
#733320
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.
#733324
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
Gast #733441
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren