next up previous contents
Nächste Seite: Deferred Activities Aufwärts: Allgemeine (common) Bibliothek Vorherige Seite: Scheduling   Inhalt

Interrupt-Behandlung

Die Interrupt-Behandlung wird in Linux von der ISR durchgeführt, die mittels request_irq(irq, isr) registriert wird. Im DDE wird daraufhin ein Thread angestoßen, der sich an eine Omega0-Instanz wendet und Zustellung von Unterbrechungs-Ereignissen anfordert.

Abbildung 4.2: Interrupt Thread
void irq_thread()
{
    ...
    for (;;) {
        /* wait for interrupt */
        omega0_request(IRQ, ...);
 
        /* handle interrupt */
        IRQ_handler(IRQ, ...);
    }
    ...
}

Beim Eintreffen eines Ereignisses wird die ISR (IRQ_handler) aufgerufen. Der ISR-Thread ist in Abb. 4.2 dargestellt.



Christian Helmuth 2001-12-11