Interrupt Flashcards

1
Q

[Betont] Geben Sie alle Aktionen an, die ein Mikrocontroller ausführt, nachdem eine Interrupt-Anforderung erkannt wurde.

A
  1. Interrupt Controller priorisiert die Interrupt anfrage
  2. Informiert die CPU über ein Event
  3. CPU führt den gerade laufenden Befehl bis zum Ende aus.r
  4. CPU liest die Vector nummer vom Interrupt Controller (um die Adresse der ISR in der Interrupt Vector Tabelle zu ermitteln)
  5. Sichern des CPU Kontextes (Program Counter, Statusregister, operating Register, etc.) auf dem Stack mittels PUSH operation.
  6. Berechnung der Adresse der ISR
  7. Interrupt anfrage wird entfernt
  8. Sprung zur berechneten Adresse
  9. ISR ausführen
  10. Register wieder holen (IAR, PSW, [Register]) mittels POP operation
  11. Rücksprung ins eigentliche Programm (RETI-Befehl)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was wird in einer Interrupt-Vektortabelle gespeichert? Wo innerhalb des Speichers befindet es sich typischerweise und was wird darin gespeichert?

A

In der Interrupt-Vektor Tabelle sind die Sprungadressen für die Interrupt-Service-Routinen hinterlegt.

befindet sich meistens im unteren Speicherbereich (niedrige Adressen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was muss programmiert werden, um einen Interrupt-Mechanismus für eine bestimmte Interrupt-Source zu verwenden.

A

Programm mittels CubeIDE Interruptfähig machen –> Cube erstellt Interrupt/Callback Funktionen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist zu beachten, wenn mehrere Interrupt-Anforderungen gleichzeitig (innerhalb eines Abtastintervalls) ausgelöst werden?

A

Priorisierung der Interrupts erstellen (mittels Interrupt-Controller)
Dieser Leitet dann nur den wichtigsten Interrupt an den Prozessor weiter, danach den Zweitwichtigsten usw.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist zu beachten, wenn eine Interrupt-Anforderung auftritt, während die CPU eine andere Interrupt-Anforderung bearbeitet?

A

● Sobald ein Interrupt ausgelöst wird, sollen alle Interrupts deaktiviert werden, bis der Interrupt durchgeführt wurde.

● Verschachteln 🡪 ein Interrupt unterbricht den anderen. Sobald der eine fertig ist, wird der andere fortgesetzt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

[Betont] Erklären Sie den Begriff Interrupt-Latenz.

A

Zeit, die zwischen dem Auftreten des Interrupts und dem ersten Befehl der Interrupt-Service-Routine vergeht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

[Betont] Erklären Sie den Ausdruck interrupt nesting.

A

Wird nach dem Einsprung in die ISR die Interrupt-Verarbeitung des Prozessors wieder aktiviert, kann ein weiterer Interrupt mit höherer Priorität die ISR des Interrupts mit geringerer Priorität unterbrechen. Dieser Interrupt wird dann behandelt, danach erfolgt der Rücksprung in die erste ISR.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was passiert im Einzelnen, wenn ein Interrupt freigegeben wird, die entsprechende Interrupt-Anforderung auftritt, eine geeignete Interrupt-Service-Routine jedoch fehlt?

A

Hierbei weist die Sprungadresse auf den Beginn der IVT (Interrupt-Vector-Table) also der Adresse 0x000 und erzeugt einen Software-Reset. –> MC wird neugestartet –> man springt zurück zur main

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Erklären Sie mögliche Wege, um eine Interrupt-Anforderung zu senden.

A

● Über externe GPIO-Pins

● Über analog-digital Konverter 🡪 Führe Interrupt bei bestimmten Wert aus.

● Timer 🡪 Führe Interrupt nach gewisser Zeit aus

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind Exceptions und wie unterscheiden sie sich von Interrupt-Service-Requests?

A
  • Exceptions werden geworfen, sobald ein Fehler im Programm auftritt (z.B. Division durch 0).
  • Interrupts werden ausgeführt, sobald ein definiertes Event (kann auch ein Fehler sein) eintritt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wo im Code ist die Vektortabelle definiert?

A

im Anfangsbereich des Speichers definiert, oft in einer Start-up-Routine oder einer speziellen Assembly-Datei.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie können Sie Informationen an/von einer Service Routine übermitteln/übergeben? Was ist in solchen Situationen zu beachten?

A

Kann über globale Variablen, Pointer übermittelt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly