Stack overflow der keiner ist....

Gast #505095
Lesenswert?
• ▲
▼
verwende einen C167 als compiler keil. Mein problem ist, dass ich 
scheinbar immer einen stack overflow hab...
mit traps.c (file von keil, welches u.a. bei einem stack overflow einen 
interrupt auslöst) hab ich überprüft ob wirklich ein stack overflow 
vorliegt.  Dies, indem ich, soblad ich in diesen interrupt kommmen, die 
werte des SP, STKOV und STKUN über die serielle schnittstelle an den PC 
sende. Dabei stelle ich jeweils fest, dass der Stackpointer wie er soll 
irgendwo zwischen STKOV und STKUN liegt... Wie kann das sein? meine ein 
stack overflow liegt vor, wenn der SP unterhalb von STKOV liegt. dies 
ist aber nicht der fall... wie kann es daher sein, dass mit der 
entsprechende interrupt dauernd ausgelöst wird?????

mfg
Daniel
Gast #505593
Lesenswert?
• ▲
▼
Schreib bei der Initialisierung des µC den kompletten Stackbereich mit 
einem Muster voll; zb 0xAA.

Einene Stackoverflow kannst du dann daran erkennen wenn das Muster in 
den letzten Stackadressen überschrieben ist.

Du könntest aber auch einen Stackunderflow haben.

Gruß
Ralph
Gast #506990
Lesenswert?
• ▲
▼
hallo ralph,
gute idee, hab ich mal gemacht, und es ist so rausgekommen wie ich 
aufgrund anderer versuche erwartat habe, grosse teile des stacks sind 
trotz stack-overflow trap noch mit dem wert 0xAAAA beschrieben...

>>Du könntest aber auch einen Stackunderflow haben.
naja dann würde ein anderer Trap ausgelöst, ich würde es also merken... 
oder überseh ich was?

woran könnte das ganze liegen? Wie weiter?

Antwort schreiben

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.

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.