]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - include/sys_vim.h
i2c: Halcogen generated source codes
[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 i2cInterrupt(void);\r
63 extern void EMACCore0RxIsr(void);\r
64 extern void EMACCore0TxIsr(void);\r
65 \r
66 \r
67 /* Vim Register Frame Definition */\r
68 /** @struct vimBase\r
69 *   @brief Vim Register Frame Definition\r
70 *\r
71 *   This type is used to access the Vim Registers.\r
72 */\r
73 /** @typedef vimBASE_t\r
74 *   @brief VIM Register Frame Type Definition\r
75 *\r
76 *   This type is used to access the VIM Registers.\r
77 */\r
78 typedef volatile struct vimBase\r
79 {\r
80 #if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))\r
81     uint32_t      IRQIVEC :  8U;    /* 0x0000        */\r
82     uint32_t              : 24U;    /* 0x0000        */\r
83     uint32_t      FIQIVEC :  8U;    /* 0x0004        */\r
84     uint32_t              : 24U;    /* 0x0004        */\r
85 #else\r
86     uint32_t              : 24U;    /* 0x0000        */\r
87     uint32_t      IRQIVEC :  8U;    /* 0x0000        */\r
88     uint32_t              : 24U;    /* 0x0004        */\r
89     uint32_t      FIQIVEC :  8U;    /* 0x0004        */\r
90 #endif\r
91     uint32_t      : 32U;            /* 0x0008        */\r
92     uint32_t      : 32U;            /* 0x000C        */\r
93     uint32_t      FIRQPR0;          /* 0x0010        */\r
94     uint32_t      FIRQPR1;          /* 0x0014        */\r
95     uint32_t      FIRQPR2;          /* 0x0018        */\r
96     uint32_t      FIRQPR3;          /* 0x001C        */\r
97     uint32_t      INTREQ0;          /* 0x0020        */\r
98     uint32_t      INTREQ1;          /* 0x0024        */\r
99     uint32_t      INTREQ2;          /* 0x0028        */\r
100     uint32_t      INTREQ3;          /* 0x002C        */\r
101     uint32_t      REQMASKSET0;      /* 0x0030        */\r
102     uint32_t      REQMASKSET1;      /* 0x0034        */\r
103     uint32_t      REQMASKSET2;      /* 0x0038        */\r
104     uint32_t      REQMASKSET3;      /* 0x003C        */\r
105     uint32_t      REQMASKCLR0;      /* 0x0040        */\r
106     uint32_t      REQMASKCLR1;      /* 0x0044        */\r
107     uint32_t      REQMASKCLR2;      /* 0x0048        */\r
108     uint32_t      REQMASKCLR3;      /* 0x004C        */\r
109     uint32_t      WAKEMASKSET0;     /* 0x0050        */\r
110     uint32_t      WAKEMASKSET1;     /* 0x0054        */\r
111     uint32_t      WAKEMASKSET2;     /* 0x0058        */\r
112     uint32_t      WAKEMASKSET3;     /* 0x005C        */\r
113     uint32_t      WAKEMASKCLR0;     /* 0x0060        */\r
114     uint32_t      WAKEMASKCLR1;     /* 0x0064        */\r
115     uint32_t      WAKEMASKCLR2;     /* 0x0068        */\r
116     uint32_t      WAKEMASKCLR3;     /* 0x006C        */\r
117     uint32_t      IRQVECREG;        /* 0x0070        */\r
118     uint32_t      FIQVECREQ;        /* 0x0074        */\r
119 #if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))\r
120     uint32_t      CAPEVTSRC0 :  7U; /* 0x0078        */\r
121     uint32_t                 :  9U; /* 0x0078        */\r
122     uint32_t      CAPEVTSRC1 :  7U; /* 0x0078        */\r
123     uint32_t                 :  9U; /* 0x0078        */\r
124 #else\r
125     uint32_t                 :  9U; /* 0x0078        */\r
126     uint32_t      CAPEVTSRC1 :  7U; /* 0x0078        */\r
127     uint32_t                 :  9U; /* 0x0078        */\r
128     uint32_t      CAPEVTSRC0 :  7U; /* 0x0078        */\r
129 #endif\r
130     uint32_t      : 32U;            /* 0x007C        */\r
131     uint8_t CHANMAP[64U];           /* 0x0080-0x017C */\r
132 } vimBASE_t;\r
133 \r
134 #define vimREG ((vimBASE_t *)0xFFFFFE00U)\r
135 \r
136 /* USER CODE BEGIN (3) */\r
137 /* USER CODE END */\r
138 \r
139 #define VIM_PARFLG              (*(unsigned int *)0xFFFFFDECU)\r
140 #define VIM_PARCTL              (*(unsigned int *)0xFFFFFDF0U)\r
141 #define VIM_ADDERR              (*(unsigned int *)0xFFFFFDF4U)\r
142 #define VIM_FBPARERR    (*(unsigned int *)0xFFFFFDF8U)\r
143 \r
144 #define VIMRAMPARLOC    (*(unsigned int *)0xFFF82400U)\r
145 #define VIMRAMLOC               (*(unsigned int *)0xFFF82000U)\r
146 \r
147 #endif\r