RTEMS  5.0.0
irq.h
1 /*
2  * Interrupt handler Header file
3  *
4  * Copyright (c) 2010 embedded brains GmbH.
5  *
6  * Copyright (c) 2006 by Ray <rayx.cn@gmail.com> to support LPC ARM
7  *
8  * The license and distribution terms for this file may be
9  * found in the file LICENSE in this distribution or at
10  * http://www.rtems.org/license/LICENSE.
11  */
12 
13 #ifndef __IRQ_H__
14 #define __IRQ_H__
15 
16 #ifndef __asm__
17 
18 #include <rtems.h>
19 #include <rtems/irq.h>
20 #include <rtems/irq-extension.h>
21 
22 #endif /* __asm__ */
23 
24 /* possible interrupt sources on the LPC22xx */
25 #define LPC22xx_INTERRUPT_WDINT 0 /* Watchdog int. 0 */
26 #define LPC22xx_INTERRUPT_RSV0 1 /* Reserved int. 1 */
27 #define LPC22xx_INTERRUPT_DBGRX 2 /* Embedded ICE DbgCommRx receive */
28 #define LPC22xx_INTERRUPT_DBGTX 3 /* Embedded ICE DbgCommRx Transmit*/
29 #define LPC22xx_INTERRUPT_TIMER0 4 /* Timer 0 */
30 #define LPC22xx_INTERRUPT_TIMER1 5 /* Timer 1 */
31 #define LPC22xx_INTERRUPT_UART0 6 /* UART 0 */
32 #define LPC22xx_INTERRUPT_UART1 7 /* UART 1 */
33 #define LPC22xx_INTERRUPT_PWM0 8 /* PWM */
34 #define LPC22xx_INTERRUPT_I2C 9 /* I2C */
35 #define LPC22xx_INTERRUPT_SPI0 10 /* SPI0 */
36 #define LPC22xx_INTERRUPT_SPI1 11 /* SPI1 */
37 #define LPC22xx_INTERRUPT_PLL 12 /* PLL */
38 #define LPC22xx_INTERRUPT_RTC 13 /* RTC */
39 #define LPC22xx_INTERRUPT_EINT0 14 /* Externel Interrupt 0 */
40 #define LPC22xx_INTERRUPT_EINT1 15 /* Externel Interrupt 1 */
41 #define LPC22xx_INTERRUPT_EINT2 16 /* Externel Interrupt 2 */
42 #define LPC22xx_INTERRUPT_EINT3 17 /* Externel Interrupt 3 */
43 #define LPC22xx_INTERRUPT_ADC 18 /* AD Converter */
44 /* Following interrupt used by lpc229x */
45 #define LPC22xx_INTERRUPT_CANERR 19 /* CAN LUTerr interrupt */
46 #define LPC22xx_INTERRUPT_CAN1TX 20 /* CAN1 Tx interrupt */
47 #define LPC22xx_INTERRUPT_CAN1RX 21 /* CAN1 Rx interrupt */
48 #define LPC22xx_INTERRUPT_CAN2TX 22 /* CAN2 Tx interrupt */
49 #define LPC22xx_INTERRUPT_CAN2RX 23 /* CAN2 Rx interrupt */
50 #define LPC22xx_INTERRUPT_CAN3TX 24 /* CAN1 Tx interrupt */
51 #define LPC22xx_INTERRUPT_CAN3RX 25 /* CAN1 Rx interrupt */
52 #define LPC22xx_INTERRUPT_CAN4TX 26 /* CAN2 Tx interrupt */
53 #define LPC22xx_INTERRUPT_CAN4RX 27 /* CAN2 Rx interrupt */
54 #define BSP_MAX_INT 28
55 
56 #define BSP_INTERRUPT_VECTOR_MIN 0
57 
58 #define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
59 
60 #define UNDEFINED_INSTRUCTION_VECTOR_ADDR (*(u_long *)0x00000004L)
61 #define SOFTWARE_INTERRUPT_VECTOR_ADDR (*(u_long *)0x00000008L)
62 #define PREFETCH_ABORT_VECTOR_ADDR (*(u_long *)0x0000000CL)
63 #define DATA_ABORT_VECTOR_ADDR (*(u_long *)0x00000010L)
64 #define IRQ_VECTOR_ADDR (*(u_long *)0x00000018L)
65 #define FIQ_VECTOR_ADDR (*(u_long *)0x0000001CL)
66 
67 #define DATA_ABORT_ISR_ADDR (*(u_long *)0x00000030L)
68 #define IRQ_ISR_ADDR (*(u_long *)0x00000038L)
69 #define FIQ_ISR_ADDR (*(u_long *)0x0000003CL)
70 
71 #endif /* __IRQ_H__ */
Header file for the Interrupt Manager Extension.