Embedded Systems und Firmware
Bei einem Mikrocontroller mit Interrupt-Prioritäten tritt während der Ausführung des Handlers eines Interrupts niedriger Priorität ein Interrupt hoher Priorität auf. Was geschieht im Allgemeinen (bei erlaubter Interrupt-Verschachtelung)?
- ADer niedrige Handler wird unterbrochen und der hohe ausgeführt; nach dessen Ende wird der niedrige fortgesetzt
- BDer hohe Interrupt wird verworfen, bis der niedrige Handler beendet ist
- CBeide Handler laufen gleichzeitig parallel auf derselben CPU
Antwort und Erläuterung anzeigen
Antwort: A. Der niedrige Handler wird unterbrochen und der hohe ausgeführt; nach dessen Ende wird der niedrige fortgesetzt
Mit Interrupt-Prioritäten wird ein dringender Interrupt auch dann bearbeitet, wenn gerade ein anderer Handler läuft. Legt man z. B. die Erkennung von Motorüberstrom auf hohe und den Kommunikationsempfang auf niedrige Priorität, kann man auch während der Empfangsverarbeitung sofort auf den Überstrom reagieren. Dieser Mechanismus ist z. B. im NVIC von Arm Cortex-M vorhanden. Interrupts gleicher oder niedrigerer Priorität müssen warten, bis der aktuelle Handler beendet ist.