]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/ARM7_AT91FR40008_GCC/aic.h
Update version number ready for V8.2.1 release.
[freertos] / FreeRTOS / Demo / ARM7_AT91FR40008_GCC / aic.h
1 //*----------------------------------------------------------------------------\r
2 //*         ATMEL Microcontroller Software Support  -  ROUSSET  -\r
3 //*----------------------------------------------------------------------------\r
4 //* The software is delivered "AS IS" without warranty or condition of any\r
5 //* kind, either express, implied or statutory. This includes without\r
6 //* limitation any warranty or condition with respect to merchantability or\r
7 //* fitness for any particular purpose, or against the infringements of\r
8 //* intellectual property rights of others.\r
9 //*----------------------------------------------------------------------------\r
10 //* File Name           : aic.h\r
11 //* Object              : Advanced Interrupt Controller Definition File.\r
12 //*\r
13 //* 1.0 01/04/00 JCZ    : Creation\r
14 //*----------------------------------------------------------------------------\r
15 \r
16 #ifndef aic_h\r
17 #define aic_h\r
18 \r
19 //#include    "periph/stdc/std_c.h"\r
20 \r
21 /*-----------------------------------------*/\r
22 /* AIC User Interface Structure Definition */\r
23 /*-----------------------------------------*/\r
24 \r
25 typedef struct\r
26 {\r
27     at91_reg        AIC_SMR[32] ;       /* Source Mode Register */\r
28     at91_reg        AIC_SVR[32] ;       /* Source Vector Register */\r
29     at91_reg        AIC_IVR ;           /* IRQ Vector Register */\r
30     at91_reg        AIC_FVR ;           /* FIQ Vector Register */\r
31     at91_reg        AIC_ISR ;           /* Interrupt Status Register */\r
32     at91_reg        AIC_IPR ;           /* Interrupt Pending Register */\r
33     at91_reg        AIC_IMR ;           /* Interrupt Mask Register */\r
34     at91_reg        AIC_CISR ;          /* Core Interrupt Status Register */\r
35     at91_reg        reserved0 ;\r
36     at91_reg        reserved1 ;\r
37     at91_reg        AIC_IECR ;          /* Interrupt Enable Command Register */\r
38     at91_reg        AIC_IDCR ;          /* Interrupt Disable Command Register */\r
39     at91_reg        AIC_ICCR ;          /* Interrupt Clear Command Register */\r
40     at91_reg        AIC_ISCR ;          /* Interrupt Set Command Register */\r
41     at91_reg        AIC_EOICR ;         /* End of Interrupt Command Register */\r
42     at91_reg        AIC_SPU ;           /* Spurious Vector Register */\r
43 } StructAIC ;\r
44 \r
45 /*--------------------------------------------*/\r
46 /* AIC_SMR[]: Interrupt Source Mode Registers */\r
47 /*--------------------------------------------*/\r
48 \r
49 #define AIC_PRIOR                       0x07    /* Priority */\r
50 \r
51 #define AIC_SRCTYPE                     0x60    /* Source Type Definition */\r
52 \r
53 /* Internal Interrupts */\r
54 #define AIC_SRCTYPE_INT_LEVEL_SENSITIVE 0x00    /* Level Sensitive */\r
55 #define AIC_SRCTYPE_INT_EDGE_TRIGGERED  0x20    /* Edge Triggered */\r
56 \r
57 /* External Interrupts */\r
58 #define AIC_SRCTYPE_EXT_LOW_LEVEL       0x00    /* Low Level */\r
59 #define AIC_SRCTYPE_EXT_NEGATIVE_EDGE   0x20    /* Negative Edge */\r
60 #define AIC_SRCTYPE_EXT_HIGH_LEVEL      0x40    /* High Level */\r
61 #define AIC_SRCTYPE_EXT_POSITIVE_EDGE   0x60    /* Positive Edge */\r
62 \r
63 /*------------------------------------*/\r
64 /* AIC_ISR: Interrupt Status Register */\r
65 /*------------------------------------*/\r
66 \r
67 #define AIC_IRQID                       0x1F    /* Current source interrupt */\r
68 \r
69 /*------------------------------------------*/\r
70 /* AIC_CISR: Interrupt Core Status Register */\r
71 /*------------------------------------------*/\r
72 \r
73 #define AIC_NFIQ                        0x01    /* Core FIQ Status */\r
74 #define AIC_NIRQ                        0x02    /* Core IRQ Status */\r
75 \r
76 /*-------------------------------*/\r
77 /* Advanced Interrupt Controller */\r
78 /*-------------------------------*/\r
79 #define AIC_BASE                        ((StructAIC *)0xFFFFF000)\r
80 \r
81 #endif /* aic_h */\r