stack

Gast #12030
Lesenswert?

Hallo Leute,
kann mir mal einer erklaeren wie ich merke
ob mir mein Stack im SRam ueberlaeuft??
Ich benutze einen 8535 und glaube das ich zu viele Variablen
ins SRam schiebe und bei verschachtelten Unterprogrammaufruf
mir der Stack ueberlaeuft.

Wie kann ich das Problem loesen?


Gruss Michael
Gast #12031
Lesenswert?

Hallo Michael,

Man kann das zum Beispiel mit dem Simulator vom AVR-Studio überprüfen. 
Du simulierst einfach das Programm und guckst Dir nach einem 
Programmdurchlauf den Speicher (Data Memory) an.
Im Normalfall setzt man den Stackpointer ja an das RAM-Ende und die 
Variablen an den Anfang des RAM.
Wenn Du im Simulatorfenster dazwischen immer noch ein paar 
Speicherzellen mit 00 siehst, ist alles I.O. Wieviel Speicher hast Du 
denn in Benutzung? Der 8535 hat doch gigantische 512 Byte RAM. Nutzt Du 
den denn voll aus?

Gruß Andreas
Gast #12033
Lesenswert?

Ich programiere in C und da wird die Speicherverwaltung
vom Compiler uebernommen. Ich benutze ziemlich grosse Felder
um Daten zu kopieren. Ich kann diese Felder aber leider nicht als static 
deklarieren da ich sie staendig veraendere.

Wie gebe ich den SP den aus ???

Gruss Michael
Gast #12034
Lesenswert?

der SP steckt einfach in zwei Registern, normalerweise SPL und SPH. Ob 
das bei Deinem Compiler so heist mußt du mal raussuchen. Ließ einfach 
die beiden Register aus und schick sie über die serielle schnittstelle.

Gruß
Markus

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