Forum: Mikrocontroller und Digitale Elektronik AT90S2333: SRAM wird unerwartet gelöscht


von Daniel (Gast)


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

von Schmittchen (Gast)


Lesenswert?

Wahrscheinlicher ist ein Programmfehler. Beachte auch, dass der Stack im 
SRAM liegt und sich nicht mit dem von dir genutzten Bereich 
überschneidet.

Schmittchen.

von Daniel (Gast)


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.

von Schmittchen (Gast)


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.

von Erwin Stache (Gast)


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

von Daniel (Gast)


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!

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.