ich hab mal in ein mein programm eine routine eingebaut, die den stack pointer an mein PC schickt. allerdings komm ich auf einen wert von 256. Das würde ja bedeuten, dass der Stack 3/4 vom RAM meines Mega16s belegt ! Kann das sein ? der wert kommt mir schon zeihmlich hoch vor.
erst mal: ja, kann sein. Aber wie das zustande kommt, kann dir sicher keiner sagen, da ausschliesslich das Programm (was du geschrieben hat) besimmt, bis wohin der Stack kommt. Weiterhin wichtig: welche Sprache/Compiler, evtl. eingestelltes Speichermodell? Prinzipiell gibt es keine Notwendigkeit, den Stack am Ende des RAMs beginnen zu lassen, auch wenn es meist so gemacht wird. Der Wert 256 macht mich allerdings etwas stutzig, könnte auch ein Programmierfehler beim Lesen/übertragen des SP-Wertes sein? Einfacher geht das mit stack-end-markern, falls möglich, im Simulator laufen lassen, besser mit Emulator/JTAG.
> allerdings komm ich auf einen wert von 256. > Das würde ja bedeuten, dass der Stack 3/4 vom RAM meines Mega16s > belegt! Ich würde sagen, es ist deutlich mehr als 3/4. Der Speicher fängt schließlich erst ab Adresse 96 an. > Kann das sein ? Woher sollen wir denn wissen, wieviel Stack dein Programm braucht? > der wert kommt mir schon zeihmlich hoch vor. Du meinst niedrig, oder?
Naja...ich glaub des war ein programmierfehler....des kann einfach nicht sein. Ich hab jetzt im Programm noch einen Buffer angelegt, der die hälfte vom RAM verbraucht. Und es kommt niemals zu einem Stack Overflow. Die register les ich doch mit SPL und SPH aus oder ? Rolf Magnus: Ich wüsste nicht was meinen stack soooo vollschaufeln sollte. Nein. Ich meinte hoch....die angabe war in bezug auf 3/4tel gedacht ;)
du kannst keine 16bit oder größer Werte in nem 8Bit UART Paket verschicken
Gegenfragen: 1. Welche Programmiersprache? 2. Wo wird der Stack beim Programmstart gesetzt, ganz oben oder unten + definierte Größe des Stack? MfG Andi
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.