2 * @brief Vectored Interrupt Module Header File
\r
3 * @date 05.November.2010
\r
6 * This file contains:
\r
7 * - VIM Type Definitions
\r
8 * - VIM General Definitions
\r
10 * which are relevant for the Vectored Interrupt Controller.
\r
13 /* (c) Texas Instruments 2010, All rights reserved. */
\r
15 #ifndef __SYS_VIM_H__
\r
16 #define __SYS_VIM_H__
\r
18 /* USER CODE BEGIN (0) */
\r
22 /* VIM Type Definitions */
\r
24 /** @typedef t_isrFuncPTR
\r
25 * @brief ISR Function Pointer Type Definition
\r
27 * This type is used to access the ISR handler.
\r
29 typedef void (*t_isrFuncPTR)();
\r
31 /* USER CODE BEGIN (1) */
\r
35 /* VIM General Configuration */
\r
37 #define VIM_CHANNELS 96U
\r
39 /* USER CODE BEGIN (2) */
\r
42 /* Interrupt Handlers */
\r
44 extern void phantomInterrupt(void);
\r
45 extern void esmHighLevelInterrupt(void);
\r
46 extern void vPreemptiveTick(void);
\r
47 extern void vNonPreemptiveTick(void);
\r
48 extern void vPortYeildWithinAPI(void);
\r
51 /* Vim Register Frame Definition */
\r
53 * @brief Vim Register Frame Definition
\r
55 * This type is used to access the Vim Registers.
\r
57 /** @typedef vimBASE_t
\r
58 * @brief VIM Register Frame Type Definition
\r
60 * This type is used to access the VIM Registers.
\r
62 typedef volatile struct vimBase
\r
64 unsigned : 24U; /* 0x0000 */
\r
65 unsigned IRQIVEC : 8U; /* 0x0000 */
\r
66 unsigned : 24U; /* 0x0004 */
\r
67 unsigned FIQIVEC : 8U; /* 0x0004 */
\r
68 unsigned : 32U; /* 0x0008 */
\r
69 unsigned : 32U; /* 0x000C */
\r
70 unsigned FIRQPR0; /* 0x0010 */
\r
71 unsigned FIRQPR1; /* 0x0014 */
\r
72 unsigned FIRQPR2; /* 0x0018 */
\r
73 unsigned FIRQPR3; /* 0x001C */
\r
74 unsigned INTREQ0; /* 0x0020 */
\r
75 unsigned INTREQ1; /* 0x0024 */
\r
76 unsigned INTREQ2; /* 0x0028 */
\r
77 unsigned INTREQ3; /* 0x002C */
\r
78 unsigned REQMASKSET0; /* 0x0030 */
\r
79 unsigned REQMASKSET1; /* 0x0034 */
\r
80 unsigned REQMASKSET2; /* 0x0038 */
\r
81 unsigned REQMASKSET3; /* 0x003C */
\r
82 unsigned REQMASKCLR0; /* 0x0040 */
\r
83 unsigned REQMASKCLR1; /* 0x0044 */
\r
84 unsigned REQMASKCLR2; /* 0x0048 */
\r
85 unsigned REQMASKCLR3; /* 0x004C */
\r
86 unsigned WAKEMASKSET0; /* 0x0050 */
\r
87 unsigned WAKEMASKSET1; /* 0x0054 */
\r
88 unsigned WAKEMASKSET2; /* 0x0058 */
\r
89 unsigned WAKEMASKSET3; /* 0x005C */
\r
90 unsigned WAKEMASKCLR0; /* 0x0060 */
\r
91 unsigned WAKEMASKCLR1; /* 0x0064 */
\r
92 unsigned WAKEMASKCLR2; /* 0x0068 */
\r
93 unsigned WAKEMASKCLR3; /* 0x006C */
\r
94 unsigned IRQVECREG; /* 0x0070 */
\r
95 unsigned FIQVECREQ; /* 0x0074 */
\r
96 unsigned : 9U; /* 0x0078 */
\r
97 unsigned CAPEVTSRC1 : 7U; /* 0x0078 */
\r
98 unsigned : 9U; /* 0x0078 */
\r
99 unsigned CAPEVTSRC0 : 7U; /* 0x0078 */
\r
100 unsigned : 32U; /* 0x007C */
\r
101 unsigned char CHANMAP[64U]; /* 0x0080-0x017C */
\r
104 #define vimREG ((vimBASE_t *)0xFFFFFE00U)
\r
106 /* USER CODE BEGIN (3) */
\r
107 /* USER CODE END */
\r