www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt Stack Frame, wie sieht er genau aus ???


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ein Interrupt ausgelöst wird, werden alle Register, der Programm
Counter usw. auf dem Stack gesichert, und in die ISR gesprungen.
Wie genau sieht denn der Interrupt Stack Frame aus. Was genau und in
welcher Reihenfolge wird gesichert?
Leider habe ich nichts in den Manuals gefunden.

Danke für Hilfe, und bis nächtes mal,
Tim.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S.: Für den ATmega128

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das einzige, was automatisch gesichert wird, ist der PC, alles andere
musst du selbst programmieren, selbst das SREG muss selbst gesichert
werden, beliebter Anfängerfehler, dies nicht zu tun.
Das kann man auf verschiedene Weisen tun, das übliche Verfahren ist,
die Dingerchen auf den Hardwarestack zu pushen.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Hardwarestack ? Ist das der, der von crt0 angelegt wird, und
   Defaultmässig 0x100 gross ist und im Data-Bereich liegt?

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SRAM beginnt beim Mega128 bei 0x100 und geht intern bis 0x40FF
Typischerweise wird der Stackpointer Register SPL & SPH mit RAMEND
(0x40FF) initialisiert. Eine Default-Größe gibt's bei den AVR-Mega
nicht, sondern ist nur durch das zur Verfügung stehende SRAM begrenzt.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwarestack ist kein spezieller Speicherbereich, sondern Teil des
normalen RAMS. Zugriffe werden i.d.R. ausschließlich über den SP
getätigt, und er heist so, weil bei bestimmten Sachen (call, ISR) von
der Hardware des Prozessors Daten gespeichert bzw gelesen werden und
auch der Zeiger auf den letzten Eintrag automatisch bedient wird.
Man kann sich andere Stackbereiche selbst definieren, die dann von den
Indexregistern (X,Y,Z) adressiert werden, werden dann i.a. als
Datenstack bezeichnet. Dort ist dann allerdings der Programmierer
gefragt, das der Zeiger korrekt steht.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Infos !!! Wenn alles so einfach ginge...

Gruß,
Tim.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.