Was liegt beim Interrupt auf dem Stack?

Gast #605855
Lesenswert?
• ▲
▼
Ich bins nochmal :-)
Momentan versuche ich rauszufinden, was passiert, wenn eine ISR 
aufgerufen wird. Meine Experimente haben ergeben, dass der Stackpointer 
dabei um 4 schrumpft, also beim aufrufen des Interrupts 4 Byte gesichert 
werden.

Kann mir vieleicht jemand sagen, welche das sind? (und in welcher 
Reihenfolge?).
Das einzige was mir spontan einfällt wäre die Rücksprungadresse. Aber 
die braucht ja nun keine 4 Byte....


Danke!
#605871
Lesenswert?
• ▲
▼
Konrad wrote:
> Ich bins nochmal :-)
> Momentan versuche ich rauszufinden, was passiert, wenn eine ISR
> aufgerufen wird. Meine Experimente haben ergeben, dass der Stackpointer
> dabei um 4 schrumpft, also beim aufrufen des Interrupts 4 Byte gesichert
> werden.
>
> Kann mir vieleicht jemand sagen, welche das sind? (und in welcher
> Reihenfolge?).
Schau Dir einfach das Assembler-Listing an. Da steht, welche Register 
zusätzlich gesichert werden.

> Das einzige was mir spontan einfällt wäre die Rücksprungadresse. Aber
> die braucht ja nun keine 4 Byte....
Die Rücksprungadresse braucht, je nach Controller (ich gehe mal davon 
aus, dass Du AVRs meinst), 2 oder 3 Bytes. Zusätzlich wird i.d.R. das 
SREG (Statusrtegister) gesichert. Und der Compiler muss von Fall zu Fall 
entscheiden, welche von ihm verwendeten Register kritische Werte 
enthalten, die dann zusätzlich gesichert werden müssen. 4 Bytes sind da 
noch wenig.
Gast #605895
Lesenswert?
• ▲
▼
Wenn kein Controller genannt ist, geht es doch meistens um einen 
ATMegaXXX ;-)

Sorry, habe ich ganz vergssen, weil ich seid eh und je nur mit ATMega16 
arbeite. Da kann man schonmal vergessen, dasses auch noch andere µCs 
gibt!
#605907
Lesenswert?
• ▲
▼
Konrad wrote:
> Wenn kein Controller genannt ist, geht es doch meistens um einen
> ATMegaXXX ;-)
Da würd ich mal behaupten, dass fast genau so viele Beiträge sich mit 
ATTinyXXX befassen! OK, PICs, 8051er u.ä. sind hier weniger verbreitet, 
ARM mit steigender Tendenz...

> Sorry, habe ich ganz vergssen, weil ich seid eh und je nur mit ATMega16
> arbeite. Da kann man schonmal vergessen, dasses auch noch andere µCs
> gibt!
Ist schon OK, passiert schon mal... Nur in Zukunft dran denken.
Gast #605916
Lesenswert?
• ▲
▼
Könnte man nicht direkt beim Anlegen eines neuen Topics darauf bestehen, 
dass der Autor aus einer Dropdownliste den verwendeten µC wählt?
Damit wäre dieses Ärgernis aus der Welt geschafft ;-)
Außerdem könnte man dann direkt in der Themenliste bei der 
Forenübersicht anzeigen, um welchen µC es geht, bzw. danach sortieren 
oder suchen...

(nur mal als Anregung, keine Ahnung ob das Sinn macht...)
Gast #606222
Lesenswert?
• ▲
▼
> Könnte man nicht direkt beim Anlegen eines neuen Topics darauf bestehen,
> dass der Autor aus einer Dropdownliste den verwendeten µC wählt?

Die Forumstechnik hier stammt eh aus der Internet-Steinzeit.

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