Interrupt Handling (Windows CE 5.0)
When an interrupt is processed, a specific sequence of events takes place. You should write the interrupt service request (ISR) and interrupt service thread (IST) for your device driver with the following sequence of events in mind:
- When an interrupt occurs, the microprocessor jumps to the kernel exception handler.
- The exception handler disables all interrupts of an equal and lower priority at the microprocessor, and then calls the appropriate ISR for the physical interrupt request (IRQ).
- The ISR returns a logical interrupt, in the form of an interrupt identifier, to the interrupt handler and typically masks the board-level device interrupt.
- The interrupt handler re-enables all interrupts at the microprocessor, with the exception of the current interrupt, which is left masked at the board, and then signals the appropriate IST event.
- The IST is scheduled, services the hardware, and then finishes processing the interrupt.
- The IST calls the InterruptDone function, which in turn calls the OEMInterruptDone function in the OAL.
OEMInterruptDone re-enables the current interrupt.
In This Section
- Interrupt Handling Overview
Describes, in detail, how Windows CE handles interrupts.
- Configuring, Registering, and Deregistering an Interrupt Handler
Describes how to configure an interrupt handler, how to register an interrupt handler, and how to deregister an interrupt handler.
- Servicing Interrupts
Describes how to service interrupts.
- Masking Interrupts
Provides information about masking interrupts.
- Handling Nested Interrupts
Describes how Windows CE handles nested interrupts.
- Handling Shared Interrupts
Describes how Windows CE handles shared interrupts.
- Kernel Overview
Provides an overview of the Windows CE kernel.
- Real-Time Priority System
Describes the real-time priority system, the priority levels associated with various operating system threads, and the thread priority levels available for other threads.
Send Feedback on this topic to the authors