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