Frage zu Interruptaufrufen

Gast #93652
Lesenswert?

Moin,

ich habe eine Frage zu Hardwareinterrupts bei Atmel µControllern. Bei
einem "richtigen" CPU werden bei einem Hardwareinterrupt der
Instructionpointer und das Flagregister auf dem STack abgelegt. Bei
einem return aus der Interruptroutine werden diese dann wieder vom
Stack geladen. Wie ist es bei einem µC? Der AT90S1200 bietet ja
beispielsweise Interrpts, besitzt aber keinen (zumindest per Programm
erreichbaren) Arbeitsspeicher. Und wie ist es beispielsweise bei dem
ATmega8515, der ja Arbeitsspeicher besitzt? Gibt es dort irgendwelche
Möglichkeiten an die zwischengespeicherten Werte zu gelangen?

Gruß,

Jörn
Gast #93653
Lesenswert?

Viele Mikrocontroller (auch die Atmels) überlassen die Sicherung der
FLags (SREG) und anderer Register dem Anwender. Das heißt: Der
Controller merkt sich lediglich die Rücksprungadresse, sonst nichts.
Zum 1200 kannn ich keine Angabe machen, prinzipiell kann man auf den
Stack mit PUSH und POP zugreifen. Bei den Atmels mit Speicher über
entsprechende Befehle (z.B. LDS), die aktuelle Stackposition ermittelt
man mit SPL (SPH).
In den Datenblättern sollten genauere Informationen diesbezüglich zu
finden sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren