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
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
das Programm wenn möglich mal im Simulator testen oder den SP an bestimmten Stellen über die serielle schnittstelle schieben. Gruß Markus http://www.elektronik-projekt.de/
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.