mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit dem Stack


Autor: Marillion (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Marillion (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.