Probleme mit dem Stack

Gast #164476
Hallo,

ich arbeite mit CodeVision, AVRStudio und dem mega64L.

Nach Start und Initialisierung meines Programmes steht der Stackpointer
auf 0x10FF. Sobald die erste ‚Call-Routine’ aufgerufen wird,
dekrementiert der Stackpointer  auf 0x10FD. Schaue ich nun im
(Data)Memoryfenster, unter der Adresse von 0x10FE und 0x10FF vom Studio
nach, so findet sich da aber nicht die Rücksprungadresse, sondern der
Wert 20h 20h.
Somit ist klar, dass das Programm nach dem inkrementiern des
Stackpointers abstürzt.

Stelle ich in den Projektsettings von CodeVision(siehe Anhang) die Heap
size von 0 auf 1024 ein, so funktioniert alles Bestens.

Bei anderen Projekten, mit mega16 und mega128, habe ich nie den Heap
size benötigt.


Kann jemand dieses Phänomen erklären?  Vielen Dank!

Die Projektsettings stehen im Anhang.
Angehängte Dateien:
Gast
Hallo,

ich hatte so ein ähnliches Problem mit meinem Mega128: Etwa die letzten
100 Bytes vom RAM konnte ich nicht beschreiben bzw. lesen. Also ging
auch kein Rücksprung von Sub-Routienen weil der Stack ja auf die letzte
Speicheradresse zeigt. Wenn ich den Stack-Pointer unter diesen Bereich
legte, dann funktionierte alles prima. Nach etwa einem Tag suchen bin
ich drauf gekommen, dass die Mega103 Fuse gesetzt war. Als ich diese
löschte war alles wunderbar.

Gruß, Florian
Gast
Hallo Florian,

vielen, vielen Dank, für Deinen Tip. Genau das war's.
Ich Blödi, hab' mir doch genau die Fuse angesehen.


Ich überreiche Dir hiermit den Mikrokontroller.net-Award 2005

                                  \/
                                 -00-
                                  /\
                                  ||
                                  ||
                                  ||
                               ========



Sckönen Gruß   Marillion
Gast
@Marillion:
btw, jpeg ist für Fotos geeignet, nicht für Screenshots. Dafür nimmt
man png oder wenn es nicht anders geht gif. Aber niemals jpeg (Hinweis
fürs nächste Mal).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.