Guten Abend! Ich schon wieder. Ich habe eine Frage zu Assembler, bzw. zu dem Konzept des Stacks. Ich finde Assembler derzeit etwas verwirrend, da ich eigentlich eher sowas wie ein Java "Experte" bin. C++ kann ich auch aber eigentlich kein Plain C => sprich ich bin nur mit'm OO Paradigma vorbelastet. Zurück zum Stack So wie ich das bis jetzt verstehe, ist das ja ein LIFO Puffer dessen Startpunkt ich am Anfang eines AVR Programmes auf das Ende des RAM setze und den jeder benutzen kann (da werden doch die Rücksprungadressen hingepackt wenn ich sowas wie rcall-ret mache?). Also kann der Satck wachsen nach UNTEN. Ich selber benutze das RAM aber doch evtl. auch, also z.b 0x0 nach OBEN. Da KÖNNTE man doch auf die Idee kommen, dass diese Bereiche mal zusammenkrachen könnten, oder nicht? Wenn ja: Kann man sich dagegen schützen, bzw kann man das merken? Was passiert denn beim "Crash" überhaupt? haben der Stack bzw. normale SRAM Zugriffe Vorrang, oder schreibt jeder der gerade dran ist, wie er will? Amok laufen wird ein Programm dann vermutlich sowieso. MfG Sebastian
gibt keinerlei automatische Speicherschutzmechanismen, das betrifft sowohl den normalen Programmbetrieb als auch Abstürze, die im Fehlerfall andere Speicherbereiche überschreiben können. Da hilft nur ordentliche Programmierung, der Programmierer ist dafür verantwortlich, daß sich Speicherbereiche nicht unzulässig überlappen.
Hallo Sebastian! Für Dich könnte vielleicht volgender Link interessant sein: http://www.mikrocontroller.net/attachment.php/677/Der-Stack-1.pdf
Hallo Sebastian! Für Dich könnte vielleicht folgender Link interessant sein: http://www.mikrocontroller.net/attachment.php/677/Der-Stack-1.pdf
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.