Forum: Mikrocontroller und Digitale Elektronik SoftReset mit goto *((void**) 0)


von Glorfindel (Gast)


Lesenswert?

Tach Leute,

ich brauche in meinem Programm einen Software-Reset. Einen WatchDog
kann ich nicht nehmen, da am Atmel noch ein DSP mit einer in Software
realisierten RS232 hängt. Geht der Watchdog-Reset los, scheint es die
Out/Input-Pins in einen Tristate zu bewegen und meine RS232
interpretiert das als nee Lowflanke eines zu empfangenen Bits.

Jetzt mache ich das über ein Anspringen des Resets mit goto *((void**)
0).

ich muss aber irgendwie Daten retten und möchte die nicht ins ram
schreiben.

Gibt es irgendwelche Register die nicht reinitialisiert werden, oder
kann ich dem gcc mitteilen das der ein paar Speicherbereiche unberührt
läßt?

von Glorfindel (Gast)


Lesenswert?

...sorry...ich will die nicht ins EEPROM schreiben.....

von Roland P. (pram)


Lesenswert?

evtl mit .noinit

http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

Da hier aber Datenmüll drin steht, musst du unbedingt irgendwie fest
stellen ob ein Poweron-Reset ausgeführt wurde (Steht z.B. im MCUCSR)

Gruß
Roland

von TravelRec. (Gast)


Lesenswert?

Ähem, mal ohne Quatsch: jeder echte Reset, ob Watchdog, Power-Up oder
Brown-Out initialisiert die I/O Register, also auch die Ports - das ist
beabsichtigt und auch unvermeidlich. Wenn Du nur an den Anfang Deines
Programms springen willst, mach das und initialisiere dann per Hand,
was initialisiert werden muß. Oder spendier den kritischen Pins am DSP
externe Pullups, die bei TriState die Leitungen auf High-Pegel halten.

von Kai R. (kairiek)


Lesenswert?

Wieso kannst du deine Daten nicht ins RAM sichern. Gibt es da einen
speziellen Grund?

von Glorfindel (Gast)


Lesenswert?

oh, klasse. das MCUCSR - Register kannte ich nicht. Bin, was den Atmel
angeht halt noch im "Beginner" - Status. Wenn ich da das PORF abfrage
reicht mir das schon.

Besten dank an alle und bis denn,

Glorfindel

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.