Subversion Repositories NaviCtrl

Rev

Rev 1 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1 Rev 196
1
/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
1
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2
* File Name          : 91x_vic.c
2
* File Name          : 91x_vic.c
3
* Author             : MCD Application Team
3
* Author             : MCD Application Team
-
 
4
* Version            : V2.1
4
* Date First Issued  : 05/18/2006 : Version 1.0
5
* Date               : 12/22/2008
5
* Description        : This file provides all the VIC software functions.
6
* Description        : This file provides all the VIC firmware functions.
6
********************************************************************************
-
 
7
* History:
-
 
8
* 05/22/2007 : Version 1.2
-
 
9
* 05/24/2006 : Version 1.1
-
 
10
* 05/18/2006 : Version 1.0
-
 
11
********************************************************************************
7
********************************************************************************
12
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
8
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
13
* CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS
9
* CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS
14
* A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
10
* A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
15
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
11
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
16
* OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
12
* OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
17
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
13
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
18
*******************************************************************************/
14
*******************************************************************************/
19
 
15
 
20
 
16
 
21
/* Standard include ----------------------------------------------------------*/
17
/* Standard include ----------------------------------------------------------*/
22
#include "91x_vic.h"
18
#include "91x_vic.h"
23
 
19
 
24
/* Include of other module interface headers ---------------------------------*/
20
/* Include of other module interface headers ---------------------------------*/
25
/* Local includes ------------------------------------------------------------*/
21
/* Local includes ------------------------------------------------------------*/
26
/* Private typedef -----------------------------------------------------------*/
22
/* Private typedef -----------------------------------------------------------*/
27
/* Private define ------------------------------------------------------------*/
23
/* Private define ------------------------------------------------------------*/
28
 
24
 
29
#define VIC_REGISTER_NUMBER              16
25
#define VIC_REGISTER_NUMBER              16
30
#define VIC_PROTECTION_ENABLE_MASK       0x1
26
#define VIC_PROTECTION_ENABLE_MASK       0x1
31
#define VIC_PROTECTION_DISABLE_MASK      0xFFFFFFFE
27
#define VIC_PROTECTION_DISABLE_MASK      0xFFFFFFFE
32
#define VIC_VECTOR_ENABLE_MASK           0x20
28
#define VIC_VECTOR_ENABLE_MASK           0x20
33
#define VIC_IT_SOURCE_MASK               0xFFFFFFE0
29
#define VIC_IT_SOURCE_MASK               0xFFFFFFE0
34
/* Private macro -------------------------------------------------------------*/
30
/* Private macro -------------------------------------------------------------*/
35
/* Private variables ---------------------------------------------------------*/
31
/* Private variables ---------------------------------------------------------*/
36
/* Private function prototypes -----------------------------------------------*/
32
/* Private function prototypes -----------------------------------------------*/
37
 
33
 
38
static void VIC_ITModeConfig(u16 VIC_Source, VIC_ITLineMode VIC_LineMode);
34
static void VIC_ITModeConfig(u16 VIC_Source, VIC_ITLineMode VIC_LineMode);
39
static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, \
35
static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, \
40
                                 void (*VIC_VectAddress)(void));
36
                                 void (*VIC_VectAddress)(void));
41
static void VIC_VectEnableConfig(u16 VIC_Source, u16 VIC_Priority);
37
static void VIC_VectEnableConfig(u16 VIC_Source, u16 VIC_Priority);
42
static void VIC_ITSourceConfig(u16 VIC_Source, u16 VIC_Priority);
38
static void VIC_ITSourceConfig(u16 VIC_Source, u16 VIC_Priority);
43
 
39
 
44
/* Interface functions -------------------------------------------------------*/
40
/* Interface functions -------------------------------------------------------*/
45
/* Private functions ---------------------------------------------------------*/
41
/* Private functions ---------------------------------------------------------*/
46
 
42
 
47
/*******************************************************************************
43
/*******************************************************************************
48
* Function Name  : VIC_DeInit
44
* Function Name  : VIC_DeInit
49
* Description    : Deinitialize the VIC module registers to their default reset
45
* Description    : Deinitialize the VIC module registers to their default reset
50
*                  values.
46
*                  values.
51
* Input          : None
47
* Input          : None
52
* Output         : None
48
* Output         : None
53
* Return         : None
49
* Return         : None
54
*******************************************************************************/
50
*******************************************************************************/
55
void VIC_DeInit(void)
51
void VIC_DeInit(void)
56
{
52
{
57
  SCU_AHBPeriphReset(__VIC, ENABLE);     /* VIC peripheral is under Reset */
53
  SCU_AHBPeriphReset(__VIC, ENABLE);     /* VIC peripheral is under Reset */
58
  SCU_AHBPeriphReset(__VIC, DISABLE);    /* VIC peripheral Reset off */
54
  SCU_AHBPeriphReset(__VIC, DISABLE);    /* VIC peripheral Reset off */
59
}
55
}
-
 
56
 
-
 
57
 
-
 
58
/*******************************************************************************
-
 
59
* Function Name  : VIC_InitDefaultVectors
-
 
60
* Description    : Assign the handler "DefaultVector_Handler" to VIC0 and VIC1
-
 
61
*                  default vector address registers VIC0_DVAR and VIC1_DVAR
-
 
62
* Input          : None
-
 
63
* Output         : None
-
 
64
* Return         : None
-
 
65
*******************************************************************************/
-
 
66
void VIC_InitDefaultVectors(void)
-
 
67
{
-
 
68
  VIC0->DVAR = (u32)DefaultVector_Handler;
-
 
69
  VIC1->DVAR = (u32)DefaultVector_Handler;                                  
60
 
70
}
61
/*******************************************************************************
71
/*******************************************************************************
62
* Function Name  : VIC_GetIRQStatus
72
* Function Name  : VIC_GetIRQStatus
63
* Description    : Get the status of interrupts after IRQ masking.
73
* Description    : Get the status of interrupts after IRQ masking.
64
* Input          : VIC_Source: specifies the number of the source line.
74
* Input          : VIC_Source: specifies the number of the source line.
65
*                  This parameter can be one of the following values:
75
*                  This parameter can be one of the following values:
66
*                     - WDG_ITLine   : VIC source 0
76
*                     - WDG_ITLine   : VIC source 0
67
*                     - SW_ITLine    : VIC source 1
77
*                     - SW_ITLine    : VIC source 1
68
*                     - ARMRX_ITLine : VIC source 2
78
*                     - ARMRX_ITLine : VIC source 2
69
*                     - ARMTX_ITLine : VIC source 3
79
*                     - ARMTX_ITLine : VIC source 3
70
*                     - TIM0_ITLine  : VIC source 4
80
*                     - TIM0_ITLine  : VIC source 4
71
*                     - TIM1_ITLine  : VIC source 5
81
*                     - TIM1_ITLine  : VIC source 5
72
*                     - TIM2_ITLine  : VIC source 6
82
*                     - TIM2_ITLine  : VIC source 6
73
*                     - TIM3_ITLine  : VIC source 7
83
*                     - TIM3_ITLine  : VIC source 7
74
*                     - USBHP_ITLine : VIC source 8
84
*                     - USBHP_ITLine : VIC source 8
75
*                     - USBLP_ITLine : VIC source 9
85
*                     - USBLP_ITLine : VIC source 9
76
*                     - SCU_ITLine   : VIC source 10
86
*                     - SCU_ITLine   : VIC source 10
77
*                     - ENET_ITLine : VIC source 11
87
*                     - ENET_ITLine : VIC source 11
78
*                     - DMA_ITLine   : VIC source 12
88
*                     - DMA_ITLine   : VIC source 12
79
*                     - CAN_ITLine   : VIC source 13
89
*                     - CAN_ITLine   : VIC source 13
80
*                     - MC_ITLine    : VIC source 14
90
*                     - MC_ITLine    : VIC source 14
81
*                     - ADC_ITLine   : VIC source 15
91
*                     - ADC_ITLine   : VIC source 15
82
*                     - UART0_ITLine : VIC source 16
92
*                     - UART0_ITLine : VIC source 16
83
*                     - UART1_ITLine : VIC source 17
93
*                     - UART1_ITLine : VIC source 17
84
*                     - UART2_ITLine : VIC source 18
94
*                     - UART2_ITLine : VIC source 18
85
*                     - I2C0_ITLine  : VIC source 19
95
*                     - I2C0_ITLine  : VIC source 19
86
*                     - I2C1_ITLine  : VIC source 20
96
*                     - I2C1_ITLine  : VIC source 20
87
*                     - SSP0_ITLine  : VIC source 21
97
*                     - SSP0_ITLine  : VIC source 21
88
*                     - SSP1_ITLine  : VIC source 22
98
*                     - SSP1_ITLine  : VIC source 22
89
*                     - LVD_ITLine   : VIC source 23
99
*                     - LVD_ITLine   : VIC source 23
90
*                     - RTC_ITLine   : VIC source 24
100
*                     - RTC_ITLine   : VIC source 24
91
*                     - WIU_ITLine   : VIC source 25
101
*                     - WIU_ITLine   : VIC source 25
92
*                     - EXTIT0_ITLine: VIC source 26
102
*                     - EXTIT0_ITLine: VIC source 26
93
*                     - EXTIT1_ITLine: VIC source 27
103
*                     - EXTIT1_ITLine: VIC source 27
94
*                     - EXTIT2_ITLine: VIC source 28
104
*                     - EXTIT2_ITLine: VIC source 28
95
*                     - EXTIT3_ITLine: VIC source 29
105
*                     - EXTIT3_ITLine: VIC source 29
96
*                     - USBWU_ITLine : VIC source 30
106
*                     - USBWU_ITLine : VIC source 30
97
*                     - PFQBC_ITLine : VIC source 31
107
*                     - PFQBC_ITLine : VIC source 31
98
* Output         : None
108
* Output         : None
99
* Return         : The status of the IRQ interrupt after masking (SET or RESET).
109
* Return         : The status of the IRQ interrupt after masking (SET or RESET).
100
*******************************************************************************/
110
*******************************************************************************/
101
FlagStatus VIC_GetIRQStatus(u16 VIC_Source)
111
FlagStatus VIC_GetIRQStatus(u16 VIC_Source)
102
{
112
{
103
  u32 VIC_Mask = 1;
113
  u32 VIC_Mask = 1;
104
  if (VIC_Source < VIC_REGISTER_NUMBER)
114
  if (VIC_Source < VIC_REGISTER_NUMBER)
105
  {
115
  {
106
    if ((VIC0->ISR | VIC_Mask << VIC_Source) != RESET)
116
    if ((VIC0->ISR | VIC_Mask << VIC_Source) != RESET)
107
      return SET;
117
      return SET;
108
    else
118
    else
109
      return RESET;
119
      return RESET;
110
  }
120
  }
111
  else
121
  else
112
  {
122
  {
113
    if ((VIC1->ISR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
123
    if ((VIC1->ISR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
114
      return SET;
124
      return SET;
115
    else
125
    else
116
      return RESET;
126
      return RESET;
117
  }
127
  }
118
}
128
}
119
 
129
 
120
/*******************************************************************************
130
/*******************************************************************************
121
* Function Name  : VIC_GetFIQStatus
131
* Function Name  : VIC_GetFIQStatus
122
* Description    : Get the status of interrupts after FIQ masking
132
* Description    : Get the status of interrupts after FIQ masking
123
* Input          : VIC_Source: specifies the number of the source line.
133
* Input          : VIC_Source: specifies the number of the source line.
124
*                  This parameter can be one of the following values:
134
*                  This parameter can be one of the following values:
125
*                     - WDG_ITLine   : VIC source 0
135
*                     - WDG_ITLine   : VIC source 0
126
*                     - SW_ITLine    : VIC source 1
136
*                     - SW_ITLine    : VIC source 1
127
*                     - ARMRX_ITLine : VIC source 2
137
*                     - ARMRX_ITLine : VIC source 2
128
*                     - ARMTX_ITLine : VIC source 3
138
*                     - ARMTX_ITLine : VIC source 3
129
*                     - TIM0_ITLine  : VIC source 4
139
*                     - TIM0_ITLine  : VIC source 4
130
*                     - TIM1_ITLine  : VIC source 5
140
*                     - TIM1_ITLine  : VIC source 5
131
*                     - TIM2_ITLine  : VIC source 6
141
*                     - TIM2_ITLine  : VIC source 6
132
*                     - TIM3_ITLine  : VIC source 7
142
*                     - TIM3_ITLine  : VIC source 7
133
*                     - USBHP_ITLine : VIC source 8
143
*                     - USBHP_ITLine : VIC source 8
134
*                     - USBLP_ITLine : VIC source 9
144
*                     - USBLP_ITLine : VIC source 9
135
*                     - SCU_ITLine   : VIC source 10
145
*                     - SCU_ITLine   : VIC source 10
136
*                     - ENET_ITLine : VIC source 11
146
*                     - ENET_ITLine : VIC source 11
137
*                     - DMA_ITLine   : VIC source 12
147
*                     - DMA_ITLine   : VIC source 12
138
*                     - CAN_ITLine   : VIC source 13
148
*                     - CAN_ITLine   : VIC source 13
139
*                     - MC_ITLine    : VIC source 14
149
*                     - MC_ITLine    : VIC source 14
140
*                     - ADC_ITLine   : VIC source 15
150
*                     - ADC_ITLine   : VIC source 15
141
*                     - UART0_ITLine : VIC source 16
151
*                     - UART0_ITLine : VIC source 16
142
*                     - UART1_ITLine : VIC source 17
152
*                     - UART1_ITLine : VIC source 17
143
*                     - UART2_ITLine : VIC source 18
153
*                     - UART2_ITLine : VIC source 18
144
*                     - I2C0_ITLine  : VIC source 19
154
*                     - I2C0_ITLine  : VIC source 19
145
*                     - I2C1_ITLine  : VIC source 20
155
*                     - I2C1_ITLine  : VIC source 20
146
*                     - SSP0_ITLine  : VIC source 21
156
*                     - SSP0_ITLine  : VIC source 21
147
*                     - SSP1_ITLine  : VIC source 22
157
*                     - SSP1_ITLine  : VIC source 22
148
*                     - LVD_ITLine   : VIC source 23
158
*                     - LVD_ITLine   : VIC source 23
149
*                     - RTC_ITLine   : VIC source 24
159
*                     - RTC_ITLine   : VIC source 24
150
*                     - WIU_ITLine   : VIC source 25
160
*                     - WIU_ITLine   : VIC source 25
151
*                     - EXTIT0_ITLine: VIC source 26
161
*                     - EXTIT0_ITLine: VIC source 26
152
*                     - EXTIT1_ITLine: VIC source 27
162
*                     - EXTIT1_ITLine: VIC source 27
153
*                     - EXTIT2_ITLine: VIC source 28
163
*                     - EXTIT2_ITLine: VIC source 28
154
*                     - EXTIT3_ITLine: VIC source 29
164
*                     - EXTIT3_ITLine: VIC source 29
155
*                     - USBWU_ITLine : VIC source 30
165
*                     - USBWU_ITLine : VIC source 30
156
*                     - PFQBC_ITLine : VIC source 31
166
*                     - PFQBC_ITLine : VIC source 31
157
* Output         : None
167
* Output         : None
158
* Return         : The status of the FIQ interrupt after masking (SET or RESET)
168
* Return         : The status of the FIQ interrupt after masking (SET or RESET)
159
*******************************************************************************/
169
*******************************************************************************/
160
FlagStatus VIC_GetFIQStatus(u16 VIC_Source)
170
FlagStatus VIC_GetFIQStatus(u16 VIC_Source)
161
{
171
{
162
  u32 VIC_Mask = 1;
172
  u32 VIC_Mask = 1;
163
  if (VIC_Source < VIC_REGISTER_NUMBER)
173
  if (VIC_Source < VIC_REGISTER_NUMBER)
164
  {
174
  {
165
    if ((VIC0->RINTSR | VIC_Mask << VIC_Source) != RESET)
175
    if ((VIC0->RINTSR | VIC_Mask << VIC_Source) != RESET)
166
      return SET;
176
      return SET;
167
    else
177
    else
168
      return RESET;
178
      return RESET;
169
  }
179
  }
170
  else
180
  else
171
  {
181
  {
172
    if ((VIC1->RINTSR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
182
    if ((VIC1->RINTSR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
173
      return SET;
183
      return SET;
174
    else
184
    else
175
      return RESET;
185
      return RESET;
176
  }
186
  }
177
}
187
}
178
 
188
 
179
/*******************************************************************************
189
/*******************************************************************************
180
* Function Name  : VIC_GetSourceITStatus
190
* Function Name  : VIC_GetSourceITStatus
181
* Description    : Get the status of the source interrupts before masking.
191
* Description    : Get the status of the source interrupts before masking.
182
* Input          : VIC_Source: specifies the number of the source line.
192
* Input          : VIC_Source: specifies the number of the source line.
183
*                  This parameter can be one of the following values:
193
*                  This parameter can be one of the following values:
184
*                     - WDG_ITLine   : VIC source 0
194
*                     - WDG_ITLine   : VIC source 0
185
*                     - SW_ITLine    : VIC source 1
195
*                     - SW_ITLine    : VIC source 1
186
*                     - ARMRX_ITLine : VIC source 2
196
*                     - ARMRX_ITLine : VIC source 2
187
*                     - ARMTX_ITLine : VIC source 3
197
*                     - ARMTX_ITLine : VIC source 3
188
*                     - TIM0_ITLine  : VIC source 4
198
*                     - TIM0_ITLine  : VIC source 4
189
*                     - TIM1_ITLine  : VIC source 5
199
*                     - TIM1_ITLine  : VIC source 5
190
*                     - TIM2_ITLine  : VIC source 6
200
*                     - TIM2_ITLine  : VIC source 6
191
*                     - TIM3_ITLine  : VIC source 7
201
*                     - TIM3_ITLine  : VIC source 7
192
*                     - USBHP_ITLine : VIC source 8
202
*                     - USBHP_ITLine : VIC source 8
193
*                     - USBLP_ITLine : VIC source 9
203
*                     - USBLP_ITLine : VIC source 9
194
*                     - SCU_ITLine   : VIC source 10
204
*                     - SCU_ITLine   : VIC source 10
195
*                     - ENET_ITLine : VIC source 11
205
*                     - ENET_ITLine : VIC source 11
196
*                     - DMA_ITLine   : VIC source 12
206
*                     - DMA_ITLine   : VIC source 12
197
*                     - CAN_ITLine   : VIC source 13
207
*                     - CAN_ITLine   : VIC source 13
198
*                     - MC_ITLine    : VIC source 14
208
*                     - MC_ITLine    : VIC source 14
199
*                     - ADC_ITLine   : VIC source 15
209
*                     - ADC_ITLine   : VIC source 15
200
*                     - UART0_ITLine : VIC source 16
210
*                     - UART0_ITLine : VIC source 16
201
*                     - UART1_ITLine : VIC source 17
211
*                     - UART1_ITLine : VIC source 17
202
*                     - UART2_ITLine : VIC source 18
212
*                     - UART2_ITLine : VIC source 18
203
*                     - I2C0_ITLine  : VIC source 19
213
*                     - I2C0_ITLine  : VIC source 19
204
*                     - I2C1_ITLine  : VIC source 20
214
*                     - I2C1_ITLine  : VIC source 20
205
*                     - SSP0_ITLine  : VIC source 21
215
*                     - SSP0_ITLine  : VIC source 21
206
*                     - SSP1_ITLine  : VIC source 22
216
*                     - SSP1_ITLine  : VIC source 22
207
*                     - LVD_ITLine   : VIC source 23
217
*                     - LVD_ITLine   : VIC source 23
208
*                     - RTC_ITLine   : VIC source 24
218
*                     - RTC_ITLine   : VIC source 24
209
*                     - WIU_ITLine   : VIC source 25
219
*                     - WIU_ITLine   : VIC source 25
210
*                     - EXTIT0_ITLine: VIC source 26
220
*                     - EXTIT0_ITLine: VIC source 26
211
*                     - EXTIT1_ITLine: VIC source 27
221
*                     - EXTIT1_ITLine: VIC source 27
212
*                     - EXTIT2_ITLine: VIC source 28
222
*                     - EXTIT2_ITLine: VIC source 28
213
*                     - EXTIT3_ITLine: VIC source 29
223
*                     - EXTIT3_ITLine: VIC source 29
214
*                     - USBWU_ITLine : VIC source 30
224
*                     - USBWU_ITLine : VIC source 30
215
*                     - PFQBC_ITLine : VIC source 31
225
*                     - PFQBC_ITLine : VIC source 31
216
* Output         : None
226
* Output         : None
217
* Return         : The status of the source interrupt before masking
227
* Return         : The status of the source interrupt before masking
218
*******************************************************************************/
228
*******************************************************************************/
219
FlagStatus VIC_GetSourceITStatus(u16 VIC_Source)
229
FlagStatus VIC_GetSourceITStatus(u16 VIC_Source)
220
{
230
{
221
  u32 VIC_Mask = 1;
231
  u32 VIC_Mask = 1;
222
  if (VIC_Source < VIC_REGISTER_NUMBER)
232
  if (VIC_Source < VIC_REGISTER_NUMBER)
223
  {
233
  {
224
    if ((VIC0->FSR | VIC_Mask << VIC_Source) != RESET)
234
    if ((VIC0->FSR | VIC_Mask << VIC_Source) != RESET)
225
      return SET;
235
      return SET;
226
    else
236
    else
227
      return RESET;
237
      return RESET;
228
  }
238
  }
229
  else
239
  else
230
  {
240
  {
231
    if ((VIC1->FSR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
241
    if ((VIC1->FSR | VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER)) != RESET)
232
      return SET;
242
      return SET;
233
    else
243
    else
234
      return RESET;
244
      return RESET;
235
  }
245
  }
236
}
246
}
237
 
247
 
238
/*******************************************************************************
248
/*******************************************************************************
239
* Function Name  : VIC_ITModeConfig
249
* Function Name  : VIC_ITModeConfig
240
* Description    : Select the type of interrupt (IRQ or FIQ)
250
* Description    : Select the type of interrupt (IRQ or FIQ)
241
* Input1         : VIC_Source: specifies the number of the source line.
251
* Input1         : VIC_Source: specifies the number of the source line.
242
*                  This parameter can be one of the following values:
252
*                  This parameter can be one of the following values:
243
*                     - WDG_ITLine   : VIC source 0
253
*                     - WDG_ITLine   : VIC source 0
244
*                     - SW_ITLine    : VIC source 1
254
*                     - SW_ITLine    : VIC source 1
245
*                     - ARMRX_ITLine : VIC source 2
255
*                     - ARMRX_ITLine : VIC source 2
246
*                     - ARMTX_ITLine : VIC source 3
256
*                     - ARMTX_ITLine : VIC source 3
247
*                     - TIM0_ITLine  : VIC source 4
257
*                     - TIM0_ITLine  : VIC source 4
248
*                     - TIM1_ITLine  : VIC source 5
258
*                     - TIM1_ITLine  : VIC source 5
249
*                     - TIM2_ITLine  : VIC source 6
259
*                     - TIM2_ITLine  : VIC source 6
250
*                     - TIM3_ITLine  : VIC source 7
260
*                     - TIM3_ITLine  : VIC source 7
251
*                     - USBHP_ITLine : VIC source 8
261
*                     - USBHP_ITLine : VIC source 8
252
*                     - USBLP_ITLine : VIC source 9
262
*                     - USBLP_ITLine : VIC source 9
253
*                     - SCU_ITLine   : VIC source 10
263
*                     - SCU_ITLine   : VIC source 10
254
*                     - ENET_ITLine : VIC source 11
264
*                     - ENET_ITLine : VIC source 11
255
*                     - DMA_ITLine   : VIC source 12
265
*                     - DMA_ITLine   : VIC source 12
256
*                     - CAN_ITLine   : VIC source 13
266
*                     - CAN_ITLine   : VIC source 13
257
*                     - MC_ITLine    : VIC source 14
267
*                     - MC_ITLine    : VIC source 14
258
*                     - ADC_ITLine   : VIC source 15
268
*                     - ADC_ITLine   : VIC source 15
259
*                     - UART0_ITLine : VIC source 16
269
*                     - UART0_ITLine : VIC source 16
260
*                     - UART1_ITLine : VIC source 17
270
*                     - UART1_ITLine : VIC source 17
261
*                     - UART2_ITLine : VIC source 18
271
*                     - UART2_ITLine : VIC source 18
262
*                     - I2C0_ITLine  : VIC source 19
272
*                     - I2C0_ITLine  : VIC source 19
263
*                     - I2C1_ITLine  : VIC source 20
273
*                     - I2C1_ITLine  : VIC source 20
264
*                     - SSP0_ITLine  : VIC source 21
274
*                     - SSP0_ITLine  : VIC source 21
265
*                     - SSP1_ITLine  : VIC source 22
275
*                     - SSP1_ITLine  : VIC source 22
266
*                     - LVD_ITLine   : VIC source 23
276
*                     - LVD_ITLine   : VIC source 23
267
*                     - RTC_ITLine   : VIC source 24
277
*                     - RTC_ITLine   : VIC source 24
268
*                     - WIU_ITLine   : VIC source 25
278
*                     - WIU_ITLine   : VIC source 25
269
*                     - EXTIT0_ITLine: VIC source 26
279
*                     - EXTIT0_ITLine: VIC source 26
270
*                     - EXTIT1_ITLine: VIC source 27
280
*                     - EXTIT1_ITLine: VIC source 27
271
*                     - EXTIT2_ITLine: VIC source 28
281
*                     - EXTIT2_ITLine: VIC source 28
272
*                     - EXTIT3_ITLine: VIC source 29
282
*                     - EXTIT3_ITLine: VIC source 29
273
*                     - USBWU_ITLine : VIC source 30
283
*                     - USBWU_ITLine : VIC source 30
274
*                     - PFQBC_ITLine : VIC source 31
284
*                     - PFQBC_ITLine : VIC source 31
275
* Input2         : VIC_LineMode :specifies the type of interrupt of the source
285
* Input2         : VIC_LineMode :specifies the type of interrupt of the source
276
*                  line. This parameter can be one of the following values:
286
*                  line. This parameter can be one of the following values:
277
*                     - VIC_IRQ: the correspondent line is configured as IRQ.
287
*                     - VIC_IRQ: the correspondent line is configured as IRQ.
278
*                     - VIC_FIQ: the correspondent line is configured as FIQ.
288
*                     - VIC_FIQ: the correspondent line is configured as FIQ.
279
* Output         : None
289
* Output         : None
280
* Return         : None
290
* Return         : None
281
*******************************************************************************/
291
*******************************************************************************/
282
static void VIC_ITModeConfig(u16 VIC_Source, VIC_ITLineMode VIC_LineMode)
292
static void VIC_ITModeConfig(u16 VIC_Source, VIC_ITLineMode VIC_LineMode)
283
{
293
{
284
  u32 VIC_Mask = 1;
294
  u32 VIC_Mask = 1;
285
 
295
 
286
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
296
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
287
  {
297
  {
288
    if (VIC_LineMode == VIC_IRQ)
298
    if (VIC_LineMode == VIC_IRQ)
289
      VIC0->INTSR &= ~(VIC_Mask << VIC_Source);
299
      VIC0->INTSR &= ~(VIC_Mask << VIC_Source);
290
    else /* VIC_LineMode == VIC_FIQ */
300
    else /* VIC_LineMode == VIC_FIQ */
291
      VIC0->INTSR |= (VIC_Mask << VIC_Source);
301
      VIC0->INTSR |= (VIC_Mask << VIC_Source);
292
  }
302
  }
293
  else /* VIC1 */
303
  else /* VIC1 */
294
  {
304
  {
295
    if (VIC_LineMode == VIC_IRQ)
305
    if (VIC_LineMode == VIC_IRQ)
296
      VIC1->INTSR &= ~(VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
306
      VIC1->INTSR &= ~(VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
297
    else /* VIC_LineMode == VIC_FIQ */
307
    else /* VIC_LineMode == VIC_FIQ */
298
      VIC1->INTSR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
308
      VIC1->INTSR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
299
  }
309
  }
300
}
310
}
301
 
311
 
302
/*******************************************************************************
312
/*******************************************************************************
303
* Function Name  : VIC_ITCmd
313
* Function Name  : VIC_ITCmd
304
* Description    : Enable or disable the interrupt request lines.
314
* Description    : Enable or disable the interrupt request lines.
305
* Input1         : VIC_Source: specifies the number of the source line.
315
* Input1         : VIC_Source: specifies the number of the source line.
306
*                  This parameter can be one of the following values:
316
*                  This parameter can be one of the following values:
307
*                     - WDG_ITLine   : VIC source 0
317
*                     - WDG_ITLine   : VIC source 0
308
*                     - SW_ITLine    : VIC source 1
318
*                     - SW_ITLine    : VIC source 1
309
*                     - ARMRX_ITLine : VIC source 2
319
*                     - ARMRX_ITLine : VIC source 2
310
*                     - ARMTX_ITLine : VIC source 3
320
*                     - ARMTX_ITLine : VIC source 3
311
*                     - TIM0_ITLine  : VIC source 4
321
*                     - TIM0_ITLine  : VIC source 4
312
*                     - TIM1_ITLine  : VIC source 5
322
*                     - TIM1_ITLine  : VIC source 5
313
*                     - TIM2_ITLine  : VIC source 6
323
*                     - TIM2_ITLine  : VIC source 6
314
*                     - TIM3_ITLine  : VIC source 7
324
*                     - TIM3_ITLine  : VIC source 7
315
*                     - USBHP_ITLine : VIC source 8
325
*                     - USBHP_ITLine : VIC source 8
316
*                     - USBLP_ITLine : VIC source 9
326
*                     - USBLP_ITLine : VIC source 9
317
*                     - SCU_ITLine   : VIC source 10
327
*                     - SCU_ITLine   : VIC source 10
318
*                     - ENET_ITLine : VIC source 11
328
*                     - ENET_ITLine : VIC source 11
319
*                     - DMA_ITLine   : VIC source 12
329
*                     - DMA_ITLine   : VIC source 12
320
*                     - CAN_ITLine   : VIC source 13
330
*                     - CAN_ITLine   : VIC source 13
321
*                     - MC_ITLine    : VIC source 14
331
*                     - MC_ITLine    : VIC source 14
322
*                     - ADC_ITLine   : VIC source 15
332
*                     - ADC_ITLine   : VIC source 15
323
*                     - UART0_ITLine : VIC source 16
333
*                     - UART0_ITLine : VIC source 16
324
*                     - UART1_ITLine : VIC source 17
334
*                     - UART1_ITLine : VIC source 17
325
*                     - UART2_ITLine : VIC source 18
335
*                     - UART2_ITLine : VIC source 18
326
*                     - I2C0_ITLine  : VIC source 19
336
*                     - I2C0_ITLine  : VIC source 19
327
*                     - I2C1_ITLine  : VIC source 20
337
*                     - I2C1_ITLine  : VIC source 20
328
*                     - SSP0_ITLine  : VIC source 21
338
*                     - SSP0_ITLine  : VIC source 21
329
*                     - SSP1_ITLine  : VIC source 22
339
*                     - SSP1_ITLine  : VIC source 22
330
*                     - LVD_ITLine   : VIC source 23
340
*                     - LVD_ITLine   : VIC source 23
331
*                     - RTC_ITLine   : VIC source 24
341
*                     - RTC_ITLine   : VIC source 24
332
*                     - WIU_ITLine   : VIC source 25
342
*                     - WIU_ITLine   : VIC source 25
333
*                     - EXTIT0_ITLine: VIC source 26
343
*                     - EXTIT0_ITLine: VIC source 26
334
*                     - EXTIT1_ITLine: VIC source 27
344
*                     - EXTIT1_ITLine: VIC source 27
335
*                     - EXTIT2_ITLine: VIC source 28
345
*                     - EXTIT2_ITLine: VIC source 28
336
*                     - EXTIT3_ITLine: VIC source 29
346
*                     - EXTIT3_ITLine: VIC source 29
337
*                     - USBWU_ITLine : VIC source 30
347
*                     - USBWU_ITLine : VIC source 30
338
*                     - PFQBC_ITLine : VIC source 31
348
*                     - PFQBC_ITLine : VIC source 31
339
* Input2         : FMI_NewState: specifies the line status.
349
* Input2         : FMI_NewState: specifies the line status.
340
*                  This parameter can be one of the following values:
350
*                  This parameter can be one of the following values:
341
*                     - ENABLE:  The line is enabled.
351
*                     - ENABLE:  The line is enabled.
342
*                     - DISABLE: The line is disabled.
352
*                     - DISABLE: The line is disabled.
343
* Output         : None
353
* Output         : None
344
* Return         : None
354
* Return         : None
345
*******************************************************************************/
355
*******************************************************************************/
346
void VIC_ITCmd(u16 VIC_Source, FunctionalState VIC_NewState)
356
void VIC_ITCmd(u16 VIC_Source, FunctionalState VIC_NewState)
347
{
357
{
348
  u32 VIC_Mask = 1;
358
  u32 VIC_Mask = 1;
349
 
359
 
350
  if (VIC_NewState == ENABLE)
360
  if (VIC_NewState == ENABLE)
351
  {
361
  {
352
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
362
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
353
      VIC0->INTER |= (VIC_Mask << VIC_Source);
363
      VIC0->INTER |= (VIC_Mask << VIC_Source);
354
    else /* VIC1 */
364
    else /* VIC1 */
355
      VIC1->INTER |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
365
      VIC1->INTER |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
356
  }
366
  }
357
  else /* VIC_NewState == DISABLE */
367
  else /* VIC_NewState == DISABLE */
358
  {
368
  {
359
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
369
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
360
      VIC0->INTECR |= (VIC_Mask << VIC_Source);
370
      VIC0->INTECR |= (VIC_Mask << VIC_Source);
361
    else /* VIC1 */
371
    else /* VIC1 */
362
      VIC1->INTECR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
372
      VIC1->INTECR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
363
  }
373
  }
364
}
374
}
365
 
375
 
366
/*******************************************************************************
376
/*******************************************************************************
367
* Function Name  : VIC_SWITCmd
377
* Function Name  : VIC_SWITCmd
368
* Description    : Generate a software interrupt for the specific source
378
* Description    : Generate a software interrupt for the specific source
369
*                  interrupt.
379
*                  interrupt.
370
* Input1         : VIC_Source: specifies the number of the source line.
380
* Input1         : VIC_Source: specifies the number of the source line.
371
*                  This parameter can be one of the following values:
381
*                  This parameter can be one of the following values:
372
*                     - WDG_ITLine   : VIC source 0
382
*                     - WDG_ITLine   : VIC source 0
373
*                     - SW_ITLine    : VIC source 1
383
*                     - SW_ITLine    : VIC source 1
374
*                     - ARMRX_ITLine : VIC source 2
384
*                     - ARMRX_ITLine : VIC source 2
375
*                     - ARMTX_ITLine : VIC source 3
385
*                     - ARMTX_ITLine : VIC source 3
376
*                     - TIM0_ITLine  : VIC source 4
386
*                     - TIM0_ITLine  : VIC source 4
377
*                     - TIM1_ITLine  : VIC source 5
387
*                     - TIM1_ITLine  : VIC source 5
378
*                     - TIM2_ITLine  : VIC source 6
388
*                     - TIM2_ITLine  : VIC source 6
379
*                     - TIM3_ITLine  : VIC source 7
389
*                     - TIM3_ITLine  : VIC source 7
380
*                     - USBHP_ITLine : VIC source 8
390
*                     - USBHP_ITLine : VIC source 8
381
*                     - USBLP_ITLine : VIC source 9
391
*                     - USBLP_ITLine : VIC source 9
382
*                     - SCU_ITLine   : VIC source 10
392
*                     - SCU_ITLine   : VIC source 10
383
*                     - ENET_ITLine : VIC source 11
393
*                     - ENET_ITLine : VIC source 11
384
*                     - DMA_ITLine   : VIC source 12
394
*                     - DMA_ITLine   : VIC source 12
385
*                     - CAN_ITLine   : VIC source 13
395
*                     - CAN_ITLine   : VIC source 13
386
*                     - MC_ITLine    : VIC source 14
396
*                     - MC_ITLine    : VIC source 14
387
*                     - ADC_ITLine   : VIC source 15
397
*                     - ADC_ITLine   : VIC source 15
388
*                     - UART0_ITLine : VIC source 16
398
*                     - UART0_ITLine : VIC source 16
389
*                     - UART1_ITLine : VIC source 17
399
*                     - UART1_ITLine : VIC source 17
390
*                     - UART2_ITLine : VIC source 18
400
*                     - UART2_ITLine : VIC source 18
391
*                     - I2C0_ITLine  : VIC source 19
401
*                     - I2C0_ITLine  : VIC source 19
392
*                     - I2C1_ITLine  : VIC source 20
402
*                     - I2C1_ITLine  : VIC source 20
393
*                     - SSP0_ITLine  : VIC source 21
403
*                     - SSP0_ITLine  : VIC source 21
394
*                     - SSP1_ITLine  : VIC source 22
404
*                     - SSP1_ITLine  : VIC source 22
395
*                     - LVD_ITLine   : VIC source 23
405
*                     - LVD_ITLine   : VIC source 23
396
*                     - RTC_ITLine   : VIC source 24
406
*                     - RTC_ITLine   : VIC source 24
397
*                     - WIU_ITLine   : VIC source 25
407
*                     - WIU_ITLine   : VIC source 25
398
*                     - EXTIT0_ITLine: VIC source 26
408
*                     - EXTIT0_ITLine: VIC source 26
399
*                     - EXTIT1_ITLine: VIC source 27
409
*                     - EXTIT1_ITLine: VIC source 27
400
*                     - EXTIT2_ITLine: VIC source 28
410
*                     - EXTIT2_ITLine: VIC source 28
401
*                     - EXTIT3_ITLine: VIC source 29
411
*                     - EXTIT3_ITLine: VIC source 29
402
*                     - USBWU_ITLine : VIC source 30
412
*                     - USBWU_ITLine : VIC source 30
403
*                     - PFQBC_ITLine : VIC source 31
413
*                     - PFQBC_ITLine : VIC source 31
404
* Input2         : FMI_NewState: specifies the software interrupt status.
414
* Input2         : FMI_NewState: specifies the software interrupt status.
405
*                  This parameter can be one of the following values:
415
*                  This parameter can be one of the following values:
406
*                     - ENABLE:  The software interrupt is enabled.
416
*                     - ENABLE:  The software interrupt is enabled.
407
*                     - DISABLE: The software interrupt is disabled.
417
*                     - DISABLE: The software interrupt is disabled.
408
* Output         : None
418
* Output         : None
409
* Return         : None
419
* Return         : None
410
*******************************************************************************/
420
*******************************************************************************/
411
void VIC_SWITCmd(u16 VIC_Source, FunctionalState VIC_NewState)
421
void VIC_SWITCmd(u16 VIC_Source, FunctionalState VIC_NewState)
412
{
422
{
413
  u32 VIC_Mask = 1;
423
  u32 VIC_Mask = 1;
414
 
424
 
415
  if (VIC_NewState == ENABLE)
425
  if (VIC_NewState == ENABLE)
416
  {
426
  {
417
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
427
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
418
      VIC0->SWINTR |= (VIC_Mask << VIC_Source);
428
      VIC0->SWINTR |= (VIC_Mask << VIC_Source);
419
    else /* VIC1 */
429
    else /* VIC1 */
420
      VIC1->SWINTR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
430
      VIC1->SWINTR |= (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
421
  }
431
  }
422
  else /* VIC_NewState == DISABLE */
432
  else /* VIC_NewState == DISABLE */
423
  {
433
  {
424
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
434
    if (VIC_Source < VIC_REGISTER_NUMBER)  /* VIC0 */
425
      VIC0->SWINTCR = (VIC_Mask << VIC_Source);
435
      VIC0->SWINTCR = (VIC_Mask << VIC_Source);
426
    else /* VIC1 */
436
    else /* VIC1 */
427
      VIC1->SWINTCR = (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
437
      VIC1->SWINTCR = (VIC_Mask << (VIC_Source - VIC_REGISTER_NUMBER));
428
  }
438
  }
429
}
439
}
430
 
440
 
431
/*******************************************************************************
441
/*******************************************************************************
432
* Function Name  : VIC_ProtectionCmd
442
* Function Name  : VIC_ProtectionCmd
433
* Description    : Enable or Disable the register access protection.
443
* Description    : Enable or Disable the register access protection.
434
* Input          : FMI_NewState: specifies the protection status.
444
* Input          : FMI_NewState: specifies the protection status.
435
*                  This parameter can be one of the following values:
445
*                  This parameter can be one of the following values:
436
*                     - ENABLE:  The protection is enabled.
446
*                     - ENABLE:  The protection is enabled.
437
*                     - DISABLE: The protection is disabled.
447
*                     - DISABLE: The protection is disabled.
438
* Output         : None
448
* Output         : None
439
* Return         : None
449
* Return         : None
440
*******************************************************************************/
450
*******************************************************************************/
441
void VIC_ProtectionCmd(FunctionalState VIC_NewState)
451
void VIC_ProtectionCmd(FunctionalState VIC_NewState)
442
{
452
{
443
  if (VIC_NewState == ENABLE)
453
  if (VIC_NewState == ENABLE)
444
  {
454
  {
445
    VIC0->PER |= VIC_PROTECTION_ENABLE_MASK;
455
    VIC0->PER |= VIC_PROTECTION_ENABLE_MASK;
446
    VIC1->PER |= VIC_PROTECTION_ENABLE_MASK;
456
    VIC1->PER |= VIC_PROTECTION_ENABLE_MASK;
447
  }
457
  }
448
  else
458
  else
449
  {
459
  {
450
    VIC0->PER &= VIC_PROTECTION_DISABLE_MASK;
460
    VIC0->PER &= VIC_PROTECTION_DISABLE_MASK;
451
    VIC1->PER &= VIC_PROTECTION_DISABLE_MASK;
461
    VIC1->PER &= VIC_PROTECTION_DISABLE_MASK;
452
  }
462
  }
453
}
463
}
454
 
464
 
455
/*******************************************************************************
465
/*******************************************************************************
456
* Function Name  : VIC_GetCurrentISRAdd
466
* Function Name  : VIC_GetCurrentISRAdd
457
* Description    : Get the address of the current active ISR.
467
* Description    : Get the address of the current active ISR.
458
* Input          : VICx: specifies the VIC peripheral
468
* Input          : VICx: specifies the VIC peripheral
459
*                  This parameter can be one of the following values:
469
*                  This parameter can be one of the following values:
460
*                     - VIC0: To select VIC0.
470
*                     - VIC0: To select VIC0.
461
*                     - VIC1: To select VIC1.
471
*                     - VIC1: To select VIC1.
462
* Output         : None
472
* Output         : None
463
* Return         : The Address of the active ISR.
473
* Return         : The Address of the active ISR.
464
*******************************************************************************/
474
*******************************************************************************/
465
u32 VIC_GetCurrentISRAdd(VIC_TypeDef* VICx)
475
u32 VIC_GetCurrentISRAdd(VIC_TypeDef* VICx)
466
{
476
{
467
  return VICx->VAR;
477
  return VICx->VAR;
468
}
478
}
469
 
479
 
470
/*******************************************************************************
480
/*******************************************************************************
471
* Function Name  : VIC_ISRVectAddConfig
481
* Function Name  : VIC_ISRVectAddConfig
472
* Description    : Configuration of the ISR vector address.
482
* Description    : Configuration of the ISR vector address.
473
* Input1         : VIC_Source: specifies the number of the source line.
483
* Input1         : VIC_Source: specifies the number of the source line.
474
*                  This parameter can be one of the following values:
484
*                  This parameter can be one of the following values:
475
*                     - WDG_ITLine   : VIC source 0
485
*                     - WDG_ITLine   : VIC source 0
476
*                     - SW_ITLine    : VIC source 1
486
*                     - SW_ITLine    : VIC source 1
477
*                     - ARMRX_ITLine : VIC source 2
487
*                     - ARMRX_ITLine : VIC source 2
478
*                     - ARMTX_ITLine : VIC source 3
488
*                     - ARMTX_ITLine : VIC source 3
479
*                     - TIM0_ITLine  : VIC source 4
489
*                     - TIM0_ITLine  : VIC source 4
480
*                     - TIM1_ITLine  : VIC source 5
490
*                     - TIM1_ITLine  : VIC source 5
481
*                     - TIM2_ITLine  : VIC source 6
491
*                     - TIM2_ITLine  : VIC source 6
482
*                     - TIM3_ITLine  : VIC source 7
492
*                     - TIM3_ITLine  : VIC source 7
483
*                     - USBHP_ITLine : VIC source 8
493
*                     - USBHP_ITLine : VIC source 8
484
*                     - USBLP_ITLine : VIC source 9
494
*                     - USBLP_ITLine : VIC source 9
485
*                     - SCU_ITLine   : VIC source 10
495
*                     - SCU_ITLine   : VIC source 10
486
*                     - ENET_ITLine : VIC source 11
496
*                     - ENET_ITLine : VIC source 11
487
*                     - DMA_ITLine   : VIC source 12
497
*                     - DMA_ITLine   : VIC source 12
488
*                     - CAN_ITLine   : VIC source 13
498
*                     - CAN_ITLine   : VIC source 13
489
*                     - MC_ITLine    : VIC source 14
499
*                     - MC_ITLine    : VIC source 14
490
*                     - ADC_ITLine   : VIC source 15
500
*                     - ADC_ITLine   : VIC source 15
491
*                     - UART0_ITLine : VIC source 16
501
*                     - UART0_ITLine : VIC source 16
492
*                     - UART1_ITLine : VIC source 17
502
*                     - UART1_ITLine : VIC source 17
493
*                     - UART2_ITLine : VIC source 18
503
*                     - UART2_ITLine : VIC source 18
494
*                     - I2C0_ITLine  : VIC source 19
504
*                     - I2C0_ITLine  : VIC source 19
495
*                     - I2C1_ITLine  : VIC source 20
505
*                     - I2C1_ITLine  : VIC source 20
496
*                     - SSP0_ITLine  : VIC source 21
506
*                     - SSP0_ITLine  : VIC source 21
497
*                     - SSP1_ITLine  : VIC source 22
507
*                     - SSP1_ITLine  : VIC source 22
498
*                     - LVD_ITLine   : VIC source 23
508
*                     - LVD_ITLine   : VIC source 23
499
*                     - RTC_ITLine   : VIC source 24
509
*                     - RTC_ITLine   : VIC source 24
500
*                     - WIU_ITLine   : VIC source 25
510
*                     - WIU_ITLine   : VIC source 25
501
*                     - EXTIT0_ITLine: VIC source 26
511
*                     - EXTIT0_ITLine: VIC source 26
502
*                     - EXTIT1_ITLine: VIC source 27
512
*                     - EXTIT1_ITLine: VIC source 27
503
*                     - EXTIT2_ITLine: VIC source 28
513
*                     - EXTIT2_ITLine: VIC source 28
504
*                     - EXTIT3_ITLine: VIC source 29
514
*                     - EXTIT3_ITLine: VIC source 29
505
*                     - USBWU_ITLine : VIC source 30
515
*                     - USBWU_ITLine : VIC source 30
506
*                     - PFQBC_ITLine : VIC source 31
516
*                     - PFQBC_ITLine : VIC source 31
507
* Input2         : VIC_Priority: specifies the priority of the interrupt.
517
* Input2         : VIC_Priority: specifies the priority of the interrupt.
508
*                  It can be a value from 0 to 15. 0 is the highest priority.
518
*                  It can be a value from 0 to 15. 0 is the highest priority.
509
* Input3         : void (*VIC_VectAddress)(void): specifies the ISR vector
519
* Input3         : void (*VIC_VectAddress)(void): specifies the ISR vector
510
*                  address pointer.
520
*                  address pointer.
511
* Output         : None
521
* Output         : None
512
* Return         : None
522
* Return         : None
513
*******************************************************************************/
523
*******************************************************************************/
514
static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, \
524
static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, \
515
                          void (*VIC_VectAddress)(void))
525
                          void (*VIC_VectAddress)(void))
516
{
526
{
517
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
527
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
518
    VIC0->VAiR[VIC_Priority] = (u32)VIC_VectAddress;
528
    VIC0->VAiR[VIC_Priority] = (u32)VIC_VectAddress;
519
  else /* VIC1 */
529
  else /* VIC1 */
520
    VIC1->VAiR[VIC_Priority] = (u32)VIC_VectAddress;
530
    VIC1->VAiR[VIC_Priority] = (u32)VIC_VectAddress;
521
}
531
}
522
 
532
 
523
/*******************************************************************************
533
/*******************************************************************************
524
* Function Name  : VIC_GetISRVectAdd
534
* Function Name  : VIC_GetISRVectAdd
525
* Description    : Get the ISR vector address of the correspondent line.
535
* Description    : Get the ISR vector address of the correspondent line.
526
* Input          : VIC_Source: specifies the number of the source line.
536
* Input1          : VIC_Source: specifies the number of the source line.
527
*                  This parameter can be one of the following values:
537
*                  This parameter can be one of the following values:
528
*                     - WDG_ITLine   : VIC source 0
538
*                     - WDG_ITLine   : VIC source 0
529
*                     - SW_ITLine    : VIC source 1
539
*                     - SW_ITLine    : VIC source 1
530
*                     - ARMRX_ITLine : VIC source 2
540
*                     - ARMRX_ITLine : VIC source 2
531
*                     - ARMTX_ITLine : VIC source 3
541
*                     - ARMTX_ITLine : VIC source 3
532
*                     - TIM0_ITLine  : VIC source 4
542
*                     - TIM0_ITLine  : VIC source 4
533
*                     - TIM1_ITLine  : VIC source 5
543
*                     - TIM1_ITLine  : VIC source 5
534
*                     - TIM2_ITLine  : VIC source 6
544
*                     - TIM2_ITLine  : VIC source 6
535
*                     - TIM3_ITLine  : VIC source 7
545
*                     - TIM3_ITLine  : VIC source 7
536
*                     - USBHP_ITLine : VIC source 8
546
*                     - USBHP_ITLine : VIC source 8
537
*                     - USBLP_ITLine : VIC source 9
547
*                     - USBLP_ITLine : VIC source 9
538
*                     - SCU_ITLine   : VIC source 10
548
*                     - SCU_ITLine   : VIC source 10
539
*                     - ENET_ITLine : VIC source 11
549
*                     - ENET_ITLine : VIC source 11
540
*                     - DMA_ITLine   : VIC source 12
550
*                     - DMA_ITLine   : VIC source 12
541
*                     - CAN_ITLine   : VIC source 13
551
*                     - CAN_ITLine   : VIC source 13
542
*                     - MC_ITLine    : VIC source 14
552
*                     - MC_ITLine    : VIC source 14
543
*                     - ADC_ITLine   : VIC source 15
553
*                     - ADC_ITLine   : VIC source 15
544
*                     - UART0_ITLine : VIC source 16
554
*                     - UART0_ITLine : VIC source 16
545
*                     - UART1_ITLine : VIC source 17
555
*                     - UART1_ITLine : VIC source 17
546
*                     - UART2_ITLine : VIC source 18
556
*                     - UART2_ITLine : VIC source 18
547
*                     - I2C0_ITLine  : VIC source 19
557
*                     - I2C0_ITLine  : VIC source 19
548
*                     - I2C1_ITLine  : VIC source 20
558
*                     - I2C1_ITLine  : VIC source 20
549
*                     - SSP0_ITLine  : VIC source 21
559
*                     - SSP0_ITLine  : VIC source 21
550
*                     - SSP1_ITLine  : VIC source 22
560
*                     - SSP1_ITLine  : VIC source 22
551
*                     - LVD_ITLine   : VIC source 23
561
*                     - LVD_ITLine   : VIC source 23
552
*                     - RTC_ITLine   : VIC source 24
562
*                     - RTC_ITLine   : VIC source 24
553
*                     - WIU_ITLine   : VIC source 25
563
*                     - WIU_ITLine   : VIC source 25
554
*                     - EXTIT0_ITLine: VIC source 26
564
*                     - EXTIT0_ITLine: VIC source 26
555
*                     - EXTIT1_ITLine: VIC source 27
565
*                     - EXTIT1_ITLine: VIC source 27
556
*                     - EXTIT2_ITLine: VIC source 28
566
*                     - EXTIT2_ITLine: VIC source 28
557
*                     - EXTIT3_ITLine: VIC source 29
567
*                     - EXTIT3_ITLine: VIC source 29
558
*                     - USBWU_ITLine : VIC source 30
568
*                     - USBWU_ITLine : VIC source 30
559
*                     - PFQBC_ITLine : VIC source 31
569
*                     - PFQBC_ITLine : VIC source 31
-
 
570
* Input2         : VIC_Priority: specifies the priority of the interrupt.
-
 
571
*                  It can be a value from 0 to 15. 0 is the highest priority.
560
* Output         : None
572
* Output         : None
561
* Return         : The correspondent ISR vector address.
573
* Return         : The correspondent ISR vector address.
562
*******************************************************************************/
574
*******************************************************************************/
563
u32 VIC_GetISRVectAdd(u16 VIC_Source)
575
u32 VIC_GetISRVectAdd(u16 VIC_Source,u16 VIC_Priority)
564
{
576
{
565
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
577
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
566
    return VIC0->VAiR[VIC_Source];
578
    return VIC0->VAiR[VIC_Priority];
567
  else /* VIC1 */
579
  else /* VIC1 */
568
    return VIC1->VAiR[VIC_Source - VIC_REGISTER_NUMBER];
580
    return VIC1->VAiR[VIC_Priority];
569
}
581
}
570
 
582
 
571
/*******************************************************************************
583
/*******************************************************************************
572
* Function Name  : VIC_VectEnableConfig
584
* Function Name  : VIC_VectEnableConfig
573
* Description    : Enable the vector interrupt.
585
* Description    : Enable the vector interrupt.
574
* Input1         : VIC_Source: specifies the number of the source line.
586
* Input1         : VIC_Source: specifies the number of the source line.
575
*                  This parameter can be one of the following values:
587
*                  This parameter can be one of the following values:
576
*                     - WDG_ITLine   : VIC source 0
588
*                     - WDG_ITLine   : VIC source 0
577
*                     - SW_ITLine    : VIC source 1
589
*                     - SW_ITLine    : VIC source 1
578
*                     - ARMRX_ITLine : VIC source 2
590
*                     - ARMRX_ITLine : VIC source 2
579
*                     - ARMTX_ITLine : VIC source 3
591
*                     - ARMTX_ITLine : VIC source 3
580
*                     - TIM0_ITLine  : VIC source 4
592
*                     - TIM0_ITLine  : VIC source 4
581
*                     - TIM1_ITLine  : VIC source 5
593
*                     - TIM1_ITLine  : VIC source 5
582
*                     - TIM2_ITLine  : VIC source 6
594
*                     - TIM2_ITLine  : VIC source 6
583
*                     - TIM3_ITLine  : VIC source 7
595
*                     - TIM3_ITLine  : VIC source 7
584
*                     - USBHP_ITLine : VIC source 8
596
*                     - USBHP_ITLine : VIC source 8
585
*                     - USBLP_ITLine : VIC source 9
597
*                     - USBLP_ITLine : VIC source 9
586
*                     - SCU_ITLine   : VIC source 10
598
*                     - SCU_ITLine   : VIC source 10
587
*                     - ENET_ITLine : VIC source 11
599
*                     - ENET_ITLine : VIC source 11
588
*                     - DMA_ITLine   : VIC source 12
600
*                     - DMA_ITLine   : VIC source 12
589
*                     - CAN_ITLine   : VIC source 13
601
*                     - CAN_ITLine   : VIC source 13
590
*                     - MC_ITLine    : VIC source 14
602
*                     - MC_ITLine    : VIC source 14
591
*                     - ADC_ITLine   : VIC source 15
603
*                     - ADC_ITLine   : VIC source 15
592
*                     - UART0_ITLine : VIC source 16
604
*                     - UART0_ITLine : VIC source 16
593
*                     - UART1_ITLine : VIC source 17
605
*                     - UART1_ITLine : VIC source 17
594
*                     - UART2_ITLine : VIC source 18
606
*                     - UART2_ITLine : VIC source 18
595
*                     - I2C0_ITLine  : VIC source 19
607
*                     - I2C0_ITLine  : VIC source 19
596
*                     - I2C1_ITLine  : VIC source 20
608
*                     - I2C1_ITLine  : VIC source 20
597
*                     - SSP0_ITLine  : VIC source 21
609
*                     - SSP0_ITLine  : VIC source 21
598
*                     - SSP1_ITLine  : VIC source 22
610
*                     - SSP1_ITLine  : VIC source 22
599
*                     - LVD_ITLine   : VIC source 23
611
*                     - LVD_ITLine   : VIC source 23
600
*                     - RTC_ITLine   : VIC source 24
612
*                     - RTC_ITLine   : VIC source 24
601
*                     - WIU_ITLine   : VIC source 25
613
*                     - WIU_ITLine   : VIC source 25
602
*                     - EXTIT0_ITLine: VIC source 26
614
*                     - EXTIT0_ITLine: VIC source 26
603
*                     - EXTIT1_ITLine: VIC source 27
615
*                     - EXTIT1_ITLine: VIC source 27
604
*                     - EXTIT2_ITLine: VIC source 28
616
*                     - EXTIT2_ITLine: VIC source 28
605
*                     - EXTIT3_ITLine: VIC source 29
617
*                     - EXTIT3_ITLine: VIC source 29
606
*                     - USBWU_ITLine : VIC source 30
618
*                     - USBWU_ITLine : VIC source 30
607
*                     - PFQBC_ITLine : VIC source 31
619
*                     - PFQBC_ITLine : VIC source 31
608
* Input2         : VIC_Priority: specifies the priority of the interrupt.
620
* Input2         : VIC_Priority: specifies the priority of the interrupt.
609
*                  It can be a value from 0 to 15. 0 is the highest priority.
621
*                  It can be a value from 0 to 15. 0 is the highest priority.
610
* Output         : None
622
* Output         : None
611
* Return         : None
623
* Return         : None
612
*******************************************************************************/
624
*******************************************************************************/
613
static void VIC_VectEnableConfig(u16 VIC_Source, u16 VIC_Priority)
625
static void VIC_VectEnableConfig(u16 VIC_Source, u16 VIC_Priority)
614
{
626
{
615
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
627
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
616
    VIC0->VCiR[VIC_Priority] |= VIC_VECTOR_ENABLE_MASK;
628
    VIC0->VCiR[VIC_Priority] |= VIC_VECTOR_ENABLE_MASK;
617
  else /* VIC1 */
629
  else /* VIC1 */
618
    VIC1->VCiR[VIC_Priority] |= VIC_VECTOR_ENABLE_MASK;
630
    VIC1->VCiR[VIC_Priority] |= VIC_VECTOR_ENABLE_MASK;
619
}
631
}
620
 
632
 
621
/*******************************************************************************
633
/*******************************************************************************
622
* Function Name  : VIC_ITSourceConfig
634
* Function Name  : VIC_ITSourceConfig
623
* Description    : Select the interrupt source.
635
* Description    : Select the interrupt source.
624
* Input1         : VIC_Source: specifies the number of the source line.
636
* Input1         : VIC_Source: specifies the number of the source line.
625
*                  This parameter can be one of the following values:
637
*                  This parameter can be one of the following values:
626
*                     - WDG_ITLine   : VIC source 0
638
*                     - WDG_ITLine   : VIC source 0
627
*                     - SW_ITLine    : VIC source 1
639
*                     - SW_ITLine    : VIC source 1
628
*                     - ARMRX_ITLine : VIC source 2
640
*                     - ARMRX_ITLine : VIC source 2
629
*                     - ARMTX_ITLine : VIC source 3
641
*                     - ARMTX_ITLine : VIC source 3
630
*                     - TIM0_ITLine  : VIC source 4
642
*                     - TIM0_ITLine  : VIC source 4
631
*                     - TIM1_ITLine  : VIC source 5
643
*                     - TIM1_ITLine  : VIC source 5
632
*                     - TIM2_ITLine  : VIC source 6
644
*                     - TIM2_ITLine  : VIC source 6
633
*                     - TIM3_ITLine  : VIC source 7
645
*                     - TIM3_ITLine  : VIC source 7
634
*                     - USBHP_ITLine : VIC source 8
646
*                     - USBHP_ITLine : VIC source 8
635
*                     - USBLP_ITLine : VIC source 9
647
*                     - USBLP_ITLine : VIC source 9
636
*                     - SCU_ITLine   : VIC source 10
648
*                     - SCU_ITLine   : VIC source 10
637
*                     - ENET_ITLine : VIC source 11
649
*                     - ENET_ITLine : VIC source 11
638
*                     - DMA_ITLine   : VIC source 12
650
*                     - DMA_ITLine   : VIC source 12
639
*                     - CAN_ITLine   : VIC source 13
651
*                     - CAN_ITLine   : VIC source 13
640
*                     - MC_ITLine    : VIC source 14
652
*                     - MC_ITLine    : VIC source 14
641
*                     - ADC_ITLine   : VIC source 15
653
*                     - ADC_ITLine   : VIC source 15
642
*                     - UART0_ITLine : VIC source 16
654
*                     - UART0_ITLine : VIC source 16
643
*                     - UART1_ITLine : VIC source 17
655
*                     - UART1_ITLine : VIC source 17
644
*                     - UART2_ITLine : VIC source 18
656
*                     - UART2_ITLine : VIC source 18
645
*                     - I2C0_ITLine  : VIC source 19
657
*                     - I2C0_ITLine  : VIC source 19
646
*                     - I2C1_ITLine  : VIC source 20
658
*                     - I2C1_ITLine  : VIC source 20
647
*                     - SSP0_ITLine  : VIC source 21
659
*                     - SSP0_ITLine  : VIC source 21
648
*                     - SSP1_ITLine  : VIC source 22
660
*                     - SSP1_ITLine  : VIC source 22
649
*                     - LVD_ITLine   : VIC source 23
661
*                     - LVD_ITLine   : VIC source 23
650
*                     - RTC_ITLine   : VIC source 24
662
*                     - RTC_ITLine   : VIC source 24
651
*                     - WIU_ITLine   : VIC source 25
663
*                     - WIU_ITLine   : VIC source 25
652
*                     - EXTIT0_ITLine: VIC source 26
664
*                     - EXTIT0_ITLine: VIC source 26
653
*                     - EXTIT1_ITLine: VIC source 27
665
*                     - EXTIT1_ITLine: VIC source 27
654
*                     - EXTIT2_ITLine: VIC source 28
666
*                     - EXTIT2_ITLine: VIC source 28
655
*                     - EXTIT3_ITLine: VIC source 29
667
*                     - EXTIT3_ITLine: VIC source 29
656
*                     - USBWU_ITLine : VIC source 30
668
*                     - USBWU_ITLine : VIC source 30
657
*                     - PFQBC_ITLine : VIC source 31
669
*                     - PFQBC_ITLine : VIC source 31
658
* Input2         : VIC_Priority: specifies the priority of the interrupt.
670
* Input2         : VIC_Priority: specifies the priority of the interrupt.
659
*                  It can be a value from 0 to 15. 0 is the highest priority.
671
*                  It can be a value from 0 to 15. 0 is the highest priority.
660
* Output         : None
672
* Output         : None
661
* Return         : None
673
* Return         : None
662
*******************************************************************************/
674
*******************************************************************************/
663
static void VIC_ITSourceConfig(u16 VIC_Source, u16 VIC_Priority)
675
static void VIC_ITSourceConfig(u16 VIC_Source, u16 VIC_Priority)
664
{
676
{
665
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
677
  if (VIC_Source < VIC_REGISTER_NUMBER) /* VIC0 */
666
  {
678
  {
667
    VIC0->VCiR[VIC_Priority] &= VIC_IT_SOURCE_MASK;
679
    VIC0->VCiR[VIC_Priority] &= VIC_IT_SOURCE_MASK;
668
    VIC0->VCiR[VIC_Priority] |= VIC_Source;
680
    VIC0->VCiR[VIC_Priority] |= VIC_Source;
669
  }
681
  }
670
  else /* VIC1 */
682
  else /* VIC1 */
671
  {
683
  {
672
    VIC1->VCiR[VIC_Priority] &= VIC_IT_SOURCE_MASK;
684
    VIC1->VCiR[VIC_Priority] &= VIC_IT_SOURCE_MASK;
673
    VIC1->VCiR[VIC_Priority] |= VIC_Source - VIC_REGISTER_NUMBER;
685
    VIC1->VCiR[VIC_Priority] |= VIC_Source - VIC_REGISTER_NUMBER;
674
  }
686
  }
675
}
687
}
676
 
688
 
677
/*******************************************************************************
689
/*******************************************************************************
678
* Function Name  : VIC_Config
690
* Function Name  : VIC_Config
679
* Description    : Configure the ISR, the line, the mode and the priority for
691
* Description    : Configure the ISR, the line, the mode and the priority for
680
*                  each interrupt source line.
692
*                  each interrupt source line.
681
* Input1         : VIC_Source: specifies the number of the source line.
693
* Input1         : VIC_Source: specifies the number of the source line.
682
*                  This parameter can be one of the following values:
694
*                  This parameter can be one of the following values:
683
*                     - WDG_ITLine   : VIC source 0
695
*                     - WDG_ITLine   : VIC source 0
684
*                     - SW_ITLine    : VIC source 1
696
*                     - SW_ITLine    : VIC source 1
685
*                     - ARMRX_ITLine : VIC source 2
697
*                     - ARMRX_ITLine : VIC source 2
686
*                     - ARMTX_ITLine : VIC source 3
698
*                     - ARMTX_ITLine : VIC source 3
687
*                     - TIM0_ITLine  : VIC source 4
699
*                     - TIM0_ITLine  : VIC source 4
688
*                     - TIM1_ITLine  : VIC source 5
700
*                     - TIM1_ITLine  : VIC source 5
689
*                     - TIM2_ITLine  : VIC source 6
701
*                     - TIM2_ITLine  : VIC source 6
690
*                     - TIM3_ITLine  : VIC source 7
702
*                     - TIM3_ITLine  : VIC source 7
691
*                     - USBHP_ITLine : VIC source 8
703
*                     - USBHP_ITLine : VIC source 8
692
*                     - USBLP_ITLine : VIC source 9
704
*                     - USBLP_ITLine : VIC source 9
693
*                     - SCU_ITLine   : VIC source 10
705
*                     - SCU_ITLine   : VIC source 10
694
*                     - ENET_ITLine : VIC source 11
706
*                     - ENET_ITLine : VIC source 11
695
*                     - DMA_ITLine   : VIC source 12
707
*                     - DMA_ITLine   : VIC source 12
696
*                     - CAN_ITLine   : VIC source 13
708
*                     - CAN_ITLine   : VIC source 13
697
*                     - MC_ITLine    : VIC source 14
709
*                     - MC_ITLine    : VIC source 14
698
*                     - ADC_ITLine   : VIC source 15
710
*                     - ADC_ITLine   : VIC source 15
699
*                     - UART0_ITLine : VIC source 16
711
*                     - UART0_ITLine : VIC source 16
700
*                     - UART1_ITLine : VIC source 17
712
*                     - UART1_ITLine : VIC source 17
701
*                     - UART2_ITLine : VIC source 18
713
*                     - UART2_ITLine : VIC source 18
702
*                     - I2C0_ITLine  : VIC source 19
714
*                     - I2C0_ITLine  : VIC source 19
703
*                     - I2C1_ITLine  : VIC source 20
715
*                     - I2C1_ITLine  : VIC source 20
704
*                     - SSP0_ITLine  : VIC source 21
716
*                     - SSP0_ITLine  : VIC source 21
705
*                     - SSP1_ITLine  : VIC source 22
717
*                     - SSP1_ITLine  : VIC source 22
706
*                     - LVD_ITLine   : VIC source 23
718
*                     - LVD_ITLine   : VIC source 23
707
*                     - RTC_ITLine   : VIC source 24
719
*                     - RTC_ITLine   : VIC source 24
708
*                     - WIU_ITLine   : VIC source 25
720
*                     - WIU_ITLine   : VIC source 25
709
*                     - EXTIT0_ITLine: VIC source 26
721
*                     - EXTIT0_ITLine: VIC source 26
710
*                     - EXTIT1_ITLine: VIC source 27
722
*                     - EXTIT1_ITLine: VIC source 27
711
*                     - EXTIT2_ITLine: VIC source 28
723
*                     - EXTIT2_ITLine: VIC source 28
712
*                     - EXTIT3_ITLine: VIC source 29
724
*                     - EXTIT3_ITLine: VIC source 29
713
*                     - USBWU_ITLine : VIC source 30
725
*                     - USBWU_ITLine : VIC source 30
714
*                     - PFQBC_ITLine : VIC source 31
726
*                     - PFQBC_ITLine : VIC source 31
715
* Input2         : VIC_LineMode :specifies the type of interrupt of the source
727
* Input2         : VIC_LineMode :specifies the type of interrupt of the source
716
*                  line. This parameter can be one of the following values:
728
*                  line. This parameter can be one of the following values:
717
*                     - VIC_IRQ: the correspondent line is configured as IRQ.
729
*                     - VIC_IRQ: the correspondent line is configured as IRQ.
718
*                     - VIC_FIQ: the correspondent line is configured as FIQ.
730
*                     - VIC_FIQ: the correspondent line is configured as FIQ.
719
* Input3         : VIC_Priority: specifies the priority of the interrupt.
731
* Input3         : VIC_Priority: specifies the priority of the interrupt.
720
*                  It can be a value from 0 to 15. 0 is the highest priority.
732
*                  It can be a value from 0 to 15. 0 is the highest priority.
721
* Output         : None
733
* Output         : None
722
* Return         : None
734
* Return         : None
723
*******************************************************************************/
735
*******************************************************************************/
724
void VIC_Config(u16 VIC_Source, VIC_ITLineMode VIC_LineMode, u8 VIC_Priority)
736
void VIC_Config(u16 VIC_Source, VIC_ITLineMode VIC_LineMode, u8 VIC_Priority)
725
{
737
{
726
  switch (VIC_Source)
738
  switch (VIC_Source)
727
  {
739
  {
728
    case 0:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, WDG_IRQHandler);
740
    case 0:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, WDG_IRQHandler);
729
             break;
741
             break;
730
 
742
 
731
    case 1:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SW_IRQHandler);
743
    case 1:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SW_IRQHandler);
732
             break;
744
             break;
733
 
745
 
734
    case 2:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ARMRX_IRQHandler);
746
    case 2:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ARMRX_IRQHandler);
735
             break;
747
             break;
736
 
748
 
737
    case 3:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ARMTX_IRQHandler);
749
    case 3:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ARMTX_IRQHandler);
738
             break;
750
             break;
739
 
751
 
740
    case 4:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM0_IRQHandler);
752
    case 4:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM0_IRQHandler);
741
             break;
753
             break;
742
 
754
 
743
    case 5:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM1_IRQHandler);
755
    case 5:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM1_IRQHandler);
744
             break;
756
             break;
745
 
757
 
746
    case 6:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM2_IRQHandler);
758
    case 6:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM2_IRQHandler);
747
             break;
759
             break;
748
 
760
 
749
    case 7:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM3_IRQHandler);
761
    case 7:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, TIM3_IRQHandler);
750
             break;
762
             break;
751
 
763
 
752
    case 8:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBHP_IRQHandler);
764
    case 8:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBHP_IRQHandler);
753
             break;
765
             break;
754
 
766
 
755
    case 9:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBLP_IRQHandler);
767
    case 9:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBLP_IRQHandler);
756
             break;
768
             break;
757
 
769
 
758
    case 10:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SCU_IRQHandler);
770
    case 10:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SCU_IRQHandler);
759
              break;
771
              break;
760
 
772
 
761
    case 11:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ENET_IRQHandler);
773
    case 11:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ENET_IRQHandler);
762
              break;
774
              break;
763
 
775
 
764
    case 12:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, DMA_IRQHandler);
776
    case 12:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, DMA_IRQHandler);
765
              break;
777
              break;
766
 
778
 
767
    case 13:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, CAN_IRQHandler);
779
    case 13:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, CAN_IRQHandler);
768
              break;
780
              break;
769
 
781
 
770
    case 14:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, MC_IRQHandler);
782
    case 14:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, MC_IRQHandler);
771
              break;
783
              break;
772
 
784
 
773
    case 15:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ADC_IRQHandler);
785
    case 15:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, ADC_IRQHandler);
774
              break;
786
              break;
775
 
787
 
776
    case 16:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART0_IRQHandler);
788
    case 16:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART0_IRQHandler);
777
              break;
789
              break;
778
 
790
 
779
    case 17:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART1_IRQHandler);
791
    case 17:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART1_IRQHandler);
780
              break;
792
              break;
781
 
793
 
782
    case 18:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART2_IRQHandler);
794
    case 18:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, UART2_IRQHandler);
783
              break;
795
              break;
784
 
796
 
785
    case 19:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, I2C0_IRQHandler);
797
    case 19:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, I2C0_IRQHandler);
786
              break;
798
              break;
787
 
799
 
788
    case 20:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, I2C1_IRQHandler);
800
    case 20:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, I2C1_IRQHandler);
789
              break;
801
              break;
790
 
802
 
791
    case 21:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SSP0_IRQHandler);
803
    case 21:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SSP0_IRQHandler);
792
              break;
804
              break;
793
 
805
 
794
    case 22:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SSP1_IRQHandler);
806
    case 22:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, SSP1_IRQHandler);
795
              break;
807
              break;
796
 
808
 
797
    case 23:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, LVD_IRQHandler);
809
    case 23:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, LVD_IRQHandler);
798
              break;
810
              break;
799
 
811
 
800
    case 24:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, RTC_IRQHandler);
812
    case 24:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, RTC_IRQHandler);
801
              break;
813
              break;
802
 
814
 
803
    case 25:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, WIU_IRQHandler);
815
    case 25:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, WIU_IRQHandler);
804
              break;
816
              break;
805
 
817
 
806
    case 26:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT0_IRQHandler);
818
    case 26:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT0_IRQHandler);
807
              break;
819
              break;
808
 
820
 
809
    case 27:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT1_IRQHandler);
821
    case 27:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT1_IRQHandler);
810
              break;
822
              break;
811
 
823
 
812
    case 28:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT2_IRQHandler);
824
    case 28:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT2_IRQHandler);
813
              break;
825
              break;
814
 
826
 
815
    case 29:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT3_IRQHandler);
827
    case 29:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, EXTIT3_IRQHandler);
816
              break;
828
              break;
817
 
829
 
818
    case 30:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBWU_IRQHandler);
830
    case 30:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, USBWU_IRQHandler);
819
              break;
831
              break;
820
 
832
 
821
    case 31:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, PFQBC_IRQHandler);
833
    case 31:  VIC_ISRVectAddConfig(VIC_Source, VIC_Priority, PFQBC_IRQHandler);
822
              break;
834
              break;
823
 
835
 
824
    default:  break;
836
    default:  break;
825
  }
837
  }
826
  VIC_ITModeConfig(VIC_Source, VIC_LineMode);
838
  VIC_ITModeConfig(VIC_Source, VIC_LineMode);
827
  VIC_VectEnableConfig(VIC_Source, VIC_Priority);
839
  VIC_VectEnableConfig(VIC_Source, VIC_Priority);
828
  VIC_ITSourceConfig(VIC_Source, VIC_Priority);
840
  VIC_ITSourceConfig(VIC_Source, VIC_Priority);
829
}
841
}
830
 
842
 
831
/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
843
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
832
 
844