RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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.