AT90S2333: SRAM wird unerwartet gelöscht

Gast #17203
Lesenswert?

Hallo zusammen,

hier mal wieder was für die Kuriositäten Sammlung:
Ich verwende eine at90s2333 um über die serielle Schnittstelle Daten 
einzulesen und diese dann im SRAM zu speichern. Beim Speichervorgang 
passiert es nun ab und zu (völlig willkürlich) das Teile des Speichers, 
die ich überhaupt nicht bearbeite, gelöscht werden...

Ist das Teil kaputt??

Gruß,
Daniel
Gast #17205
Lesenswert?

Hm..
Der Stackpointer liegt am Ende des Speicherbereichs. Ich nutze momentan 
die ersten 32 Byte des Speichers für meine Werte. Wenn ich immer nur 
eine Routine auf einmal aufrufe sollte der Stackpointer kaum so groß 
werden, oder? Das Witzige ist ja das es in der Simulation wunderbar 
funktioniert.
Gast #17206
Lesenswert?

> nur eine Routine auf einmal aufrufe sollte der Stackpointer kaum so groß werden, 
oder?
richtig - normalerweise nicht.

Poste doch mal deinen Code (falls sehr groß, dann als Anhang) - dann 
kann man evtl. genaueres sagen und nicht nur rumraten.

Vielleicht trat das Problem nur in der Simulation noch nicht auf.

Schmittchen.
Gast #17207
Lesenswert?

Hallo,

wenn Du mit push und pop arbeitest, dann bitte genau darauf achten, daß 
auch alles "gepushte" wieder "gepopt" wird, sonst läuft der SRAM voll. 
Dies ist in der Simulation kaum zu bemerken.
Oder -- mal das Ende des SRAM in der Simulation beobachten
Gast #17208
Lesenswert?

Ok, es funktioniert inzwischen...

Danke an Schmittchen und Erwin!
Ich habe die Interrupt Routine mit RJMP anstatt mit RETI verlassen, 
deswegen wurde die "gepushte" Rücksprungadresse nicht mehr "gepopt" und 
das SRAM ist vollgelaufen.

Dankeschön und Servus!

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