]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - include/sys_vim.h
719e642dc1d06cde232fe912e8f34d62aad8a987
[pes-rpp/rpp-test-sw.git] / include / sys_vim.h
1 /** @file sys_vim.h\r
2 *   @brief Vectored Interrupt Module Header File\r
3 *   @date 15.Mar.2012\r
4 *   @version 03.01.00\r
5 *   \r
6 *   This file contains:\r
7 *   - VIM Type Definitions\r
8 *   - VIM General Definitions\r
9 *   .\r
10 *   which are relevant for Vectored Interrupt Controller.\r
11 */\r
12 \r
13 /* (c) Texas Instruments 2009-2012, All rights reserved. */\r
14 \r
15 #ifndef __SYS_VIM_H__\r
16 #define __SYS_VIM_H__\r
17 \r
18 #include "sys_common.h"\r
19 \r
20 /* USER CODE BEGIN (0) */\r
21 /* USER CODE END */\r
22 \r
23 \r
24 /* VIM Type Definitions */\r
25 \r
26 /** @typedef t_isrFuncPTR\r
27 *   @brief ISR Function Pointer Type Definition\r
28 *\r
29 *   This type is used to access the ISR handler.\r
30 */\r
31 typedef void (*t_isrFuncPTR)();\r
32 \r
33 /* USER CODE BEGIN (1) */\r
34 /* USER CODE END */\r
35 \r
36 \r
37 /* VIM General Configuration */\r
38 \r
39 #define VIM_CHANNELS 96U\r
40 \r
41 /* Interrupt Handlers */\r
42 \r
43 extern void phantomInterrupt(void);\r
44 extern void esmHighInterrupt(void);\r
45 extern void phantomInterrupt(void);\r
46 extern void vPreemptiveTick(void);\r
47 extern void linHighLevelInterrupt(void);\r
48 extern void mibspi1HighLevelInterrupt(void);\r
49 extern void adc1Group1Interrupt(void);\r
50 extern void can1HighLevelInterrupt(void);\r
51 extern void spi2HighLevelInterrupt(void);\r
52 extern void mibspi1LowLevelInterrupt(void);\r
53 extern void spi2LowLevelInterrupt(void);\r
54 extern void can2HighLevelInterrupt(void);\r
55 extern void mibspi3HighInterruptLevel(void);\r
56 extern void mibspi3LowLevelInterrupt(void);\r
57 extern void can3HighLevelInterrupt(void);\r
58 extern void spi4HighLevelInterrupt(void);\r
59 extern void adc2Group1Interrupt(void);\r
60 extern void spi4LowLevelInterrupt(void);\r
61 extern void sciHighLevelInterrupt(void);\r
62 extern void EMACCore0RxIsr(void);\r
63 extern void EMACCore0TxIsr(void);\r
64 \r
65 \r
66 /* Vim Register Frame Definition */\r
67 /** @struct vimBase\r
68 *   @brief Vim Register Frame Definition\r
69 *\r
70 *   This type is used to access the Vim Registers.\r
71 */\r
72 /** @typedef vimBASE_t\r
73 *   @brief VIM Register Frame Type Definition\r
74 *\r
75 *   This type is used to access the VIM Registers.\r
76 */\r
77 typedef volatile struct vimBase\r
78 {\r
79 #if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))\r
80     uint32_t      IRQIVEC :  8U;    /* 0x0000        */\r
81     uint32_t              : 24U;    /* 0x0000        */\r
82     uint32_t      FIQIVEC :  8U;    /* 0x0004        */\r
83     uint32_t              : 24U;    /* 0x0004        */\r
84 #else\r
85     uint32_t              : 24U;    /* 0x0000        */\r
86     uint32_t      IRQIVEC :  8U;    /* 0x0000        */\r
87     uint32_t              : 24U;    /* 0x0004        */\r
88     uint32_t      FIQIVEC :  8U;    /* 0x0004        */\r
89 #endif\r
90     uint32_t      : 32U;            /* 0x0008        */\r
91     uint32_t      : 32U;            /* 0x000C        */\r
92     uint32_t      FIRQPR0;          /* 0x0010        */\r
93     uint32_t      FIRQPR1;          /* 0x0014        */\r
94     uint32_t      FIRQPR2;          /* 0x0018        */\r
95     uint32_t      FIRQPR3;          /* 0x001C        */\r
96     uint32_t      INTREQ0;          /* 0x0020        */\r
97     uint32_t      INTREQ1;          /* 0x0024        */\r
98     uint32_t      INTREQ2;          /* 0x0028        */\r
99     uint32_t      INTREQ3;          /* 0x002C        */\r
100     uint32_t      REQMASKSET0;      /* 0x0030        */\r
101     uint32_t      REQMASKSET1;      /* 0x0034        */\r
102     uint32_t      REQMASKSET2;      /* 0x0038        */\r
103     uint32_t      REQMASKSET3;      /* 0x003C        */\r
104     uint32_t      REQMASKCLR0;      /* 0x0040        */\r
105     uint32_t      REQMASKCLR1;      /* 0x0044        */\r
106     uint32_t      REQMASKCLR2;      /* 0x0048        */\r
107     uint32_t      REQMASKCLR3;      /* 0x004C        */\r
108     uint32_t      WAKEMASKSET0;     /* 0x0050        */\r
109     uint32_t      WAKEMASKSET1;     /* 0x0054        */\r
110     uint32_t      WAKEMASKSET2;     /* 0x0058        */\r
111     uint32_t      WAKEMASKSET3;     /* 0x005C        */\r
112     uint32_t      WAKEMASKCLR0;     /* 0x0060        */\r
113     uint32_t      WAKEMASKCLR1;     /* 0x0064        */\r
114     uint32_t      WAKEMASKCLR2;     /* 0x0068        */\r
115     uint32_t      WAKEMASKCLR3;     /* 0x006C        */\r
116     uint32_t      IRQVECREG;        /* 0x0070        */\r
117     uint32_t      FIQVECREQ;        /* 0x0074        */\r
118 #if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))\r
119     uint32_t      CAPEVTSRC0 :  7U; /* 0x0078        */\r
120     uint32_t                 :  9U; /* 0x0078        */\r
121     uint32_t      CAPEVTSRC1 :  7U; /* 0x0078        */\r
122     uint32_t                 :  9U; /* 0x0078        */\r
123 #else\r
124     uint32_t                 :  9U; /* 0x0078        */\r
125     uint32_t      CAPEVTSRC1 :  7U; /* 0x0078        */\r
126     uint32_t                 :  9U; /* 0x0078        */\r
127     uint32_t      CAPEVTSRC0 :  7U; /* 0x0078        */\r
128 #endif\r
129     uint32_t      : 32U;            /* 0x007C        */\r
130     uint8_t CHANMAP[64U];           /* 0x0080-0x017C */\r
131 } vimBASE_t;\r
132 \r
133 #define vimREG ((vimBASE_t *)0xFFFFFE00U)\r
134 \r
135 /* USER CODE BEGIN (3) */\r
136 /* USER CODE END */\r
137 \r
138 #define VIM_PARFLG              (*(unsigned int *)0xFFFFFDECU)\r
139 #define VIM_PARCTL              (*(unsigned int *)0xFFFFFDF0U)\r
140 #define VIM_ADDERR              (*(unsigned int *)0xFFFFFDF4U)\r
141 #define VIM_FBPARERR    (*(unsigned int *)0xFFFFFDF8U)\r
142 \r
143 #define VIMRAMPARLOC    (*(unsigned int *)0xFFF82400U)\r
144 #define VIMRAMLOC               (*(unsigned int *)0xFFF82000U)\r
145 \r
146 #endif\r