Gast
#2673594
Hallo Leute, ich verwende einen 8051 Mikrocontroller, welcher in C per Keil Compiler kompiliert wird. Mich würde interessieren, was alles in den Stack gesichert wird wenn eine Interrupt Service Routine aufgerufen wird. Mir ist aufgefallen, dass unterschiedlich viel Bytes im Stack abgelegt werden (mehr als durch Parameter und Funktionsaufrufe zu erwarten wäre). Ist der Aufbau des Stacks beim Aufruf eines Interrupts irgendwie genormt oder soetwas? Wann z.B. werden Register im Stack gesichert und wann nicht? Es geht mir darum, dass ich den Stack in der Interrupt Service Routine so manipulieren möchte, dass ich an eine andere Stelle im Code springen kann (zur Realisierung eines preämptiven Multitaskingsystems). Das Manipulieren des Stacks innerhalb von normalen Unterprogrammen klappt einwandfrei. Allerdings verhält sich der Stack bei Interrupts scheinbar anders... Vielen Dank für eure Hilfe!