Forum: Mikrocontroller und Digitale Elektronik software reset


von Winfried Alex (Gast)


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.

von crazy horse (Gast)


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

von Uwe Arends (Gast)


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

von crazy horse (Gast)


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.

von Uwe Arends (Gast)


Lesenswert?

siehe hinweis im Nachsatz, implizit steckt da die initialisierung der 
SFR drin

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.