software reset

Gast #27176
Lesenswert?

Einen guten Abend an Alle!

Hat jemand von euch einen Tip, wie ich einen Software Reset in C 
hinbekomme?
Ich möchte nach einem wake-up die Software neu starten. Normalerweise 
geht es nach einem wake-up dort weiter, wo es vor dem power-down 
aufgehört hat. In diesem Fall soll die Software aber ganz neu gestartet 
werden mit allen Initialisierungen usw.
Hat jemand einen Tip für mich?

Danke für eure Hilfe.
Gruß Winfried.
Gast #27177
Lesenswert?

gibt mehrere Möglichkeiten.
1. (geht immer) den internen watchdog starten und das Programm in eine 
Endlosschleife schicken, nach einer gewissen Zeit beißt der Hund und du 
hast deinen deinen Reset.
2. einen Portpin mit Reset verbinden und diesen auf low setzen
3. alle Initialisierungen per Software dazuschreiben und einen Sprung 
nach Adresse 0 programmieren, dürfte nur mit asm gehen
#asm
 rjmp 0
#endasm
Gast #27178
Lesenswert?

Hi Winfried,

wie in der CodeVision NG schon gesagt:
#asm
jmp 0
#endasm

Dies gewährleistet zumindest, das der Startup-Code des C-Programms 
durchlaufen wird. Registerinhalte, die davon nicht bearbeitet werden, 
sind natürlich nicht oder nur zufällig auf "Reset"-Stand.

hth
-uwe
Gast #27179
Lesenswert?

ne ne, ganz so einfach geht das nicht, es sei denn, alle SFR werden in 
der startup initialisiert (glaube ich nicht, müßte man mal nachesehen).
Aber man hat ja die Möglichkeit, eine eigene startup einzubinden.

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