Hallo, ich habe eine Verständnisfrage. Wie werden lokale Variablen beim Interruptaufruf behandelt? In einer Funktion außerhalb der Interruptbearbeitung wird der Speicherplatz der lokalen Variablen ja nach Abarbeitung der Funktion wieder freigegeben und ggf. für die nächste Funktion genutzt. Wenn ich jetzt die gleichen Funktionen bei der Interruptbearbeitung aufrufe, dann muss ja der Speicherbereich der lokalen Variablen ständig reserviert bleiben, da ich vorweg oft nicht weiß, wann er benötigt wird. Ist diese Überlegung so richtig? Muss ich bei Compilern diesem Problem besondere Beachtung schenken oder kann ich davon ausgehen, dass sie es i.A. richtig machen?
Foxi schrieb: > Ist diese > Überlegung so richtig? nein. Denn diese Variablen werden auf dem STack angelegt und dort ist immer Platz. Am ende der funtion wird der Stack wieder aufgeräumt und alles ist gut.
Foxi schrieb: > In einer Funktion außerhalb der Interruptbearbeitung wird der > Speicherplatz der lokalen Variablen ja nach Abarbeitung der Funktion > wieder freigegeben und ggf. für die nächste Funktion genutzt. Nicht zwangsläufig. Bei 8051ern und Microchips 8-Bittern muss das beispielsweise nicht so sein. > Muss ich bei Compilern diesem Problem besondere Beachtung schenken Bei solchen Controllern/Compilern infolgedessen ja (=> reentrant).
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.