Hi James,
MQX Lite handles all hardware interrupts as defined in the Interrupt Vector Table generated by PEx (see vector.c). Similarly to standard MQX, MQX Lite provides a first level ISR (kernel ISR), which is written in assembly language. The first-level ISR runs before any other ISR, and performs these tasks:
• It saves the context of the active task.
• It switches to the interrupt stack.
• It calls the appropriate, second-level, (application) ISR.
• After the ISR has returned, it restores the context of the highest-priority ready task (context switch may occur).
First-level ISR can be replaced by the user-specific ISR on a per-vector basis. MQX Lite provides second-level application ISRs that are coded as regular functions and are installed into MQX Lite Interrupt Table through the Interrupt component API.
Default second-level ISR for all possible interrupt sources is installed when MQX Lite starts. MQX Lite also supports the installation of the user-specific, default, second-level ISR. When a second-level ISR is called, the parameter, which the application defines when the application installs the ISR, is passed to the ISR.
Each entry of the MQX Lite Interrupt Table consists of:
• A pointer to the ISR to call.
• Data to pass as a parameter to the ISR.
• A pointer to an exception handler for that ISR.
MQX Lite supports installing an exception handler and enabling and disabling the Hardware interrupts.
The difference between the Interrupt component in the standard MQX and the MQX Lite is minimal and involves statistical allocation of certain internal resources. The list of Interrupt component API functions ( _int_ prefix) is stated together with detailed description of each function in the Freescale MQX™ Lite RTOS Reference Manual(MQXLITERM).
Hope this will be useful for you.
Best regards!
/Carlos