User | Revision | Line number | New contents of line |
Sergunb |
0:8f0d870509fe
|
1
|
/**
|
Sergunb |
0:8f0d870509fe
|
2
|
******************************************************************************
|
Sergunb |
0:8f0d870509fe
|
3
|
* @file startup_stm32f10x_md.c
|
Sergunb |
0:8f0d870509fe
|
4
|
* @author Coocox
|
Sergunb |
0:8f0d870509fe
|
5
|
* @version V1.0
|
Sergunb |
0:8f0d870509fe
|
6
|
* @date 12/23/2009
|
Sergunb |
0:8f0d870509fe
|
7
|
* @brief STM32F10x Medium Density Devices Startup code.
|
Sergunb |
0:8f0d870509fe
|
8
|
* This module performs:
|
Sergunb |
0:8f0d870509fe
|
9
|
* - Set the initial SP
|
Sergunb |
0:8f0d870509fe
|
10
|
* - Set the vector table entries with the exceptions ISR address
|
Sergunb |
0:8f0d870509fe
|
11
|
* - Initialize data and bss
|
Sergunb |
0:8f0d870509fe
|
12
|
* - Setup the microcontroller system.
|
Sergunb |
0:8f0d870509fe
|
13
|
* - Call the application's entry point.
|
Sergunb |
0:8f0d870509fe
|
14
|
* After Reset the Cortex-M3 processor is in Thread mode,
|
Sergunb |
0:8f0d870509fe
|
15
|
* priority is Privileged, and the Stack is set to Main.
|
Sergunb |
0:8f0d870509fe
|
16
|
*******************************************************************************
|
Sergunb |
0:8f0d870509fe
|
17
|
*/
|
Sergunb |
0:8f0d870509fe
|
18
|
|
Sergunb |
0:8f0d870509fe
|
19
|
|
Sergunb |
0:8f0d870509fe
|
20
|
/*----------Stack Configuration-----------------------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
21
|
#define STACK_SIZE 0x00000100 /*!< The Stack size suggest using even number */
|
Sergunb |
0:8f0d870509fe
|
22
|
__attribute__ ((section(".co_stack")))
|
Sergunb |
0:8f0d870509fe
|
23
|
unsigned long pulStack[STACK_SIZE];
|
Sergunb |
0:8f0d870509fe
|
24
|
|
Sergunb |
0:8f0d870509fe
|
25
|
|
Sergunb |
0:8f0d870509fe
|
26
|
/*----------Macro definition--------------------------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
27
|
#define WEAK __attribute__ ((weak))
|
Sergunb |
0:8f0d870509fe
|
28
|
|
Sergunb |
0:8f0d870509fe
|
29
|
|
Sergunb |
0:8f0d870509fe
|
30
|
/*----------Declaration of the default fault handlers-------------------------*/
|
Sergunb |
0:8f0d870509fe
|
31
|
/* System exception vector handler */
|
Sergunb |
0:8f0d870509fe
|
32
|
__attribute__ ((used))
|
Sergunb |
0:8f0d870509fe
|
33
|
void WEAK Reset_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
34
|
void WEAK NMI_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
35
|
void WEAK HardFault_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
36
|
void WEAK MemManage_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
37
|
void WEAK BusFault_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
38
|
void WEAK UsageFault_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
39
|
void WEAK SVC_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
40
|
void WEAK DebugMon_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
41
|
void WEAK PendSV_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
42
|
void WEAK SysTick_Handler(void);
|
Sergunb |
0:8f0d870509fe
|
43
|
void WEAK WWDG_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
44
|
void WEAK PVD_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
45
|
void WEAK TAMPER_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
46
|
void WEAK RTC_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
47
|
void WEAK FLASH_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
48
|
void WEAK RCC_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
49
|
void WEAK EXTI0_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
50
|
void WEAK EXTI1_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
51
|
void WEAK EXTI2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
52
|
void WEAK EXTI3_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
53
|
void WEAK EXTI4_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
54
|
void WEAK DMA1_Channel1_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
55
|
void WEAK DMA1_Channel2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
56
|
void WEAK DMA1_Channel3_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
57
|
void WEAK DMA1_Channel4_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
58
|
void WEAK DMA1_Channel5_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
59
|
void WEAK DMA1_Channel6_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
60
|
void WEAK DMA1_Channel7_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
61
|
void WEAK ADC1_2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
62
|
void WEAK USB_HP_CAN1_TX_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
63
|
void WEAK USB_LP_CAN1_RX0_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
64
|
void WEAK CAN1_RX1_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
65
|
void WEAK CAN1_SCE_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
66
|
void WEAK EXTI9_5_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
67
|
void WEAK TIM1_BRK_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
68
|
void WEAK TIM1_UP_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
69
|
void WEAK TIM1_TRG_COM_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
70
|
void WEAK TIM1_CC_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
71
|
void WEAK TIM2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
72
|
void WEAK TIM3_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
73
|
void WEAK TIM4_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
74
|
void WEAK I2C1_EV_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
75
|
void WEAK I2C1_ER_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
76
|
void WEAK I2C2_EV_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
77
|
void WEAK I2C2_ER_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
78
|
void WEAK SPI1_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
79
|
void WEAK SPI2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
80
|
void WEAK USART1_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
81
|
void WEAK USART2_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
82
|
void WEAK USART3_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
83
|
void WEAK EXTI15_10_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
84
|
void WEAK RTCAlarm_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
85
|
void WEAK USBWakeUp_IRQHandler(void);
|
Sergunb |
0:8f0d870509fe
|
86
|
|
Sergunb |
0:8f0d870509fe
|
87
|
|
Sergunb |
0:8f0d870509fe
|
88
|
/*----------Symbols defined in linker script----------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
89
|
extern unsigned long _sidata; /*!< Start address for the initialization
|
Sergunb |
0:8f0d870509fe
|
90
|
values of the .data section. */
|
Sergunb |
0:8f0d870509fe
|
91
|
extern unsigned long _sdata; /*!< Start address for the .data section */
|
Sergunb |
0:8f0d870509fe
|
92
|
extern unsigned long _edata; /*!< End address for the .data section */
|
Sergunb |
0:8f0d870509fe
|
93
|
extern unsigned long _sbss; /*!< Start address for the .bss section */
|
Sergunb |
0:8f0d870509fe
|
94
|
extern unsigned long _ebss; /*!< End address for the .bss section */
|
Sergunb |
0:8f0d870509fe
|
95
|
extern void _eram; /*!< End address for ram */
|
Sergunb |
0:8f0d870509fe
|
96
|
|
Sergunb |
0:8f0d870509fe
|
97
|
|
Sergunb |
0:8f0d870509fe
|
98
|
/*----------Function prototypes-----------------------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
99
|
extern int main(void); /*!< The entry point for the application. */
|
Sergunb |
0:8f0d870509fe
|
100
|
extern void SystemInit(void); /*!< Setup the microcontroller system(CMSIS) */
|
Sergunb |
0:8f0d870509fe
|
101
|
void Default_Reset_Handler(void); /*!< Default reset handler */
|
Sergunb |
0:8f0d870509fe
|
102
|
static void Default_Handler(void); /*!< Default exception handler */
|
Sergunb |
0:8f0d870509fe
|
103
|
|
Sergunb |
0:8f0d870509fe
|
104
|
|
Sergunb |
0:8f0d870509fe
|
105
|
/**
|
Sergunb |
0:8f0d870509fe
|
106
|
*@brief The minimal vector table for a Cortex M3. Note that the proper constructs
|
Sergunb |
0:8f0d870509fe
|
107
|
* must be placed on this to ensure that it ends up at physical address
|
Sergunb |
0:8f0d870509fe
|
108
|
* 0x00000000.
|
Sergunb |
0:8f0d870509fe
|
109
|
*/
|
Sergunb |
0:8f0d870509fe
|
110
|
__attribute__ ((used,section(".isr_vector")))
|
Sergunb |
0:8f0d870509fe
|
111
|
void (* const g_pfnVectors[])(void) =
|
Sergunb |
0:8f0d870509fe
|
112
|
{
|
Sergunb |
0:8f0d870509fe
|
113
|
/*----------Core Exceptions-------------------------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
114
|
(void *)&pulStack[STACK_SIZE], /*!< The initial stack pointer */
|
Sergunb |
0:8f0d870509fe
|
115
|
Reset_Handler, /*!< Reset Handler */
|
Sergunb |
0:8f0d870509fe
|
116
|
NMI_Handler, /*!< NMI Handler */
|
Sergunb |
0:8f0d870509fe
|
117
|
HardFault_Handler, /*!< Hard Fault Handler */
|
Sergunb |
0:8f0d870509fe
|
118
|
MemManage_Handler, /*!< MPU Fault Handler */
|
Sergunb |
0:8f0d870509fe
|
119
|
BusFault_Handler, /*!< Bus Fault Handler */
|
Sergunb |
0:8f0d870509fe
|
120
|
UsageFault_Handler, /*!< Usage Fault Handler */
|
Sergunb |
0:8f0d870509fe
|
121
|
0,0,0,0, /*!< Reserved */
|
Sergunb |
0:8f0d870509fe
|
122
|
SVC_Handler, /*!< SVCall Handler */
|
Sergunb |
0:8f0d870509fe
|
123
|
DebugMon_Handler, /*!< Debug Monitor Handler */
|
Sergunb |
0:8f0d870509fe
|
124
|
0, /*!< Reserved */
|
Sergunb |
0:8f0d870509fe
|
125
|
PendSV_Handler, /*!< PendSV Handler */
|
Sergunb |
0:8f0d870509fe
|
126
|
SysTick_Handler, /*!< SysTick Handler */
|
Sergunb |
0:8f0d870509fe
|
127
|
|
Sergunb |
0:8f0d870509fe
|
128
|
/*----------External Exceptions---------------------------------------------*/
|
Sergunb |
0:8f0d870509fe
|
129
|
WWDG_IRQHandler, /*!< 0: Window Watchdog */
|
Sergunb |
0:8f0d870509fe
|
130
|
PVD_IRQHandler, /*!< 1: PVD through EXTI Line detect */
|
Sergunb |
0:8f0d870509fe
|
131
|
TAMPER_IRQHandler, /*!< 2: Tamper */
|
Sergunb |
0:8f0d870509fe
|
132
|
RTC_IRQHandler, /*!< 3: RTC */
|
Sergunb |
0:8f0d870509fe
|
133
|
FLASH_IRQHandler, /*!< 4: Flash */
|
Sergunb |
0:8f0d870509fe
|
134
|
RCC_IRQHandler, /*!< 5: RCC */
|
Sergunb |
0:8f0d870509fe
|
135
|
EXTI0_IRQHandler, /*!< 6: EXTI Line 0 */
|
Sergunb |
0:8f0d870509fe
|
136
|
EXTI1_IRQHandler, /*!< 7: EXTI Line 1 */
|
Sergunb |
0:8f0d870509fe
|
137
|
EXTI2_IRQHandler, /*!< 8: EXTI Line 2 */
|
Sergunb |
0:8f0d870509fe
|
138
|
EXTI3_IRQHandler, /*!< 9: EXTI Line 3 */
|
Sergunb |
0:8f0d870509fe
|
139
|
EXTI4_IRQHandler, /*!< 10: EXTI Line 4 */
|
Sergunb |
0:8f0d870509fe
|
140
|
DMA1_Channel1_IRQHandler, /*!< 11: DMA1 Channel 1 */
|
Sergunb |
0:8f0d870509fe
|
141
|
DMA1_Channel2_IRQHandler, /*!< 12: DMA1 Channel 2 */
|
Sergunb |
0:8f0d870509fe
|
142
|
DMA1_Channel3_IRQHandler, /*!< 13: DMA1 Channel 3 */
|
Sergunb |
0:8f0d870509fe
|
143
|
DMA1_Channel4_IRQHandler, /*!< 14: DMA1 Channel 4 */
|
Sergunb |
0:8f0d870509fe
|
144
|
DMA1_Channel5_IRQHandler, /*!< 15: DMA1 Channel 5 */
|
Sergunb |
0:8f0d870509fe
|
145
|
DMA1_Channel6_IRQHandler, /*!< 16: DMA1 Channel 6 */
|
Sergunb |
0:8f0d870509fe
|
146
|
DMA1_Channel7_IRQHandler, /*!< 17: DMA1 Channel 7 */
|
Sergunb |
0:8f0d870509fe
|
147
|
ADC1_2_IRQHandler, /*!< 18: ADC1 & ADC2 */
|
Sergunb |
0:8f0d870509fe
|
148
|
USB_HP_CAN1_TX_IRQHandler, /*!< 19: USB High Priority or CAN1 TX */
|
Sergunb |
0:8f0d870509fe
|
149
|
USB_LP_CAN1_RX0_IRQHandler, /*!< 20: USB Low Priority or CAN1 RX0 */
|
Sergunb |
0:8f0d870509fe
|
150
|
CAN1_RX1_IRQHandler, /*!< 21: CAN1 RX1 */
|
Sergunb |
0:8f0d870509fe
|
151
|
CAN1_SCE_IRQHandler, /*!< 22: CAN1 SCE */
|
Sergunb |
0:8f0d870509fe
|
152
|
EXTI9_5_IRQHandler, /*!< 23: EXTI Line 9..5 */
|
Sergunb |
0:8f0d870509fe
|
153
|
TIM1_BRK_IRQHandler, /*!< 24: TIM1 Break */
|
Sergunb |
0:8f0d870509fe
|
154
|
TIM1_UP_IRQHandler, /*!< 25: TIM1 Update */
|
Sergunb |
0:8f0d870509fe
|
155
|
TIM1_TRG_COM_IRQHandler, /*!< 26: TIM1 Trigger and Commutation */
|
Sergunb |
0:8f0d870509fe
|
156
|
TIM1_CC_IRQHandler, /*!< 27: TIM1 Capture Compare */
|
Sergunb |
0:8f0d870509fe
|
157
|
TIM2_IRQHandler, /*!< 28: TIM2 */
|
Sergunb |
0:8f0d870509fe
|
158
|
TIM3_IRQHandler, /*!< 29: TIM3 */
|
Sergunb |
0:8f0d870509fe
|
159
|
TIM4_IRQHandler, /*!< 30: TIM4 */
|
Sergunb |
0:8f0d870509fe
|
160
|
I2C1_EV_IRQHandler, /*!< 31: I2C1 Event */
|
Sergunb |
0:8f0d870509fe
|
161
|
I2C1_ER_IRQHandler, /*!< 32: I2C1 Error */
|
Sergunb |
0:8f0d870509fe
|
162
|
I2C2_EV_IRQHandler, /*!< 33: I2C2 Event */
|
Sergunb |
0:8f0d870509fe
|
163
|
I2C2_ER_IRQHandler, /*!< 34: I2C2 Error */
|
Sergunb |
0:8f0d870509fe
|
164
|
SPI1_IRQHandler, /*!< 35: SPI1 */
|
Sergunb |
0:8f0d870509fe
|
165
|
SPI2_IRQHandler, /*!< 36: SPI2 */
|
Sergunb |
0:8f0d870509fe
|
166
|
USART1_IRQHandler, /*!< 37: USART1 */
|
Sergunb |
0:8f0d870509fe
|
167
|
USART2_IRQHandler, /*!< 38: USART2 */
|
Sergunb |
0:8f0d870509fe
|
168
|
USART3_IRQHandler, /*!< 39: USART3 */
|
Sergunb |
0:8f0d870509fe
|
169
|
EXTI15_10_IRQHandler, /*!< 40: EXTI Line 15..10 */
|
Sergunb |
0:8f0d870509fe
|
170
|
RTCAlarm_IRQHandler, /*!< 41: RTC Alarm through EXTI Line */
|
Sergunb |
0:8f0d870509fe
|
171
|
USBWakeUp_IRQHandler, /*!< 42: USB Wakeup from suspend */
|
Sergunb |
0:8f0d870509fe
|
172
|
0,0,0,0,0,0,0, /*!< Reserved */
|
Sergunb |
0:8f0d870509fe
|
173
|
(void *)0xF108F85F /*!< Boot in RAM mode */
|
Sergunb |
0:8f0d870509fe
|
174
|
};
|
Sergunb |
0:8f0d870509fe
|
175
|
|
Sergunb |
0:8f0d870509fe
|
176
|
|
Sergunb |
0:8f0d870509fe
|
177
|
/**
|
Sergunb |
0:8f0d870509fe
|
178
|
* @brief This is the code that gets called when the processor first
|
Sergunb |
0:8f0d870509fe
|
179
|
* starts execution following a reset event. Only the absolutely
|
Sergunb |
0:8f0d870509fe
|
180
|
* necessary set is performed, after which the application
|
Sergunb |
0:8f0d870509fe
|
181
|
* supplied main() routine is called.
|
Sergunb |
0:8f0d870509fe
|
182
|
* @param None
|
Sergunb |
0:8f0d870509fe
|
183
|
* @retval None
|
Sergunb |
0:8f0d870509fe
|
184
|
*/
|
Sergunb |
0:8f0d870509fe
|
185
|
void Default_Reset_Handler(void)
|
Sergunb |
0:8f0d870509fe
|
186
|
{
|
Sergunb |
0:8f0d870509fe
|
187
|
/* Initialize data and bss */
|
Sergunb |
0:8f0d870509fe
|
188
|
unsigned long *pulSrc, *pulDest;
|
Sergunb |
0:8f0d870509fe
|
189
|
|
Sergunb |
0:8f0d870509fe
|
190
|
/* Copy the data segment initializers from flash to SRAM */
|
Sergunb |
0:8f0d870509fe
|
191
|
pulSrc = &_sidata;
|
Sergunb |
0:8f0d870509fe
|
192
|
|
Sergunb |
0:8f0d870509fe
|
193
|
for(pulDest = &_sdata; pulDest < &_edata; )
|
Sergunb |
0:8f0d870509fe
|
194
|
{
|
Sergunb |
0:8f0d870509fe
|
195
|
*(pulDest++) = *(pulSrc++);
|
Sergunb |
0:8f0d870509fe
|
196
|
}
|
Sergunb |
0:8f0d870509fe
|
197
|
|
Sergunb |
0:8f0d870509fe
|
198
|
/* Zero fill the bss segment. This is done with inline assembly since this
|
Sergunb |
0:8f0d870509fe
|
199
|
will clear the value of pulDest if it is not kept in a register. */
|
Sergunb |
0:8f0d870509fe
|
200
|
__asm(" ldr r0, =_sbss\n"
|
Sergunb |
0:8f0d870509fe
|
201
|
" ldr r1, =_ebss\n"
|
Sergunb |
0:8f0d870509fe
|
202
|
" mov r2, #0\n"
|
Sergunb |
0:8f0d870509fe
|
203
|
" .thumb_func\n"
|
Sergunb |
0:8f0d870509fe
|
204
|
"zero_loop:\n"
|
Sergunb |
0:8f0d870509fe
|
205
|
" cmp r0, r1\n"
|
Sergunb |
0:8f0d870509fe
|
206
|
" it lt\n"
|
Sergunb |
0:8f0d870509fe
|
207
|
" strlt r2, [r0], #4\n"
|
Sergunb |
0:8f0d870509fe
|
208
|
" blt zero_loop");
|
Sergunb |
0:8f0d870509fe
|
209
|
|
Sergunb |
0:8f0d870509fe
|
210
|
/* Setup the microcontroller system. */
|
Sergunb |
0:8f0d870509fe
|
211
|
SystemInit();
|
Sergunb |
0:8f0d870509fe
|
212
|
|
Sergunb |
0:8f0d870509fe
|
213
|
/* Call the application's entry point.*/
|
Sergunb |
0:8f0d870509fe
|
214
|
main();
|
Sergunb |
0:8f0d870509fe
|
215
|
}
|
Sergunb |
0:8f0d870509fe
|
216
|
|
Sergunb |
0:8f0d870509fe
|
217
|
/**
|
Sergunb |
0:8f0d870509fe
|
218
|
*@brief Provide weak aliases for each Exception handler to the Default_Handler.
|
Sergunb |
0:8f0d870509fe
|
219
|
* As they are weak aliases, any function with the same name will override
|
Sergunb |
0:8f0d870509fe
|
220
|
* this definition.
|
Sergunb |
0:8f0d870509fe
|
221
|
*/
|
Sergunb |
0:8f0d870509fe
|
222
|
#pragma weak Reset_Handler = Default_Reset_Handler
|
Sergunb |
0:8f0d870509fe
|
223
|
#pragma weak NMI_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
224
|
#pragma weak HardFault_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
225
|
#pragma weak MemManage_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
226
|
#pragma weak BusFault_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
227
|
#pragma weak UsageFault_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
228
|
#pragma weak SVC_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
229
|
#pragma weak DebugMon_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
230
|
#pragma weak PendSV_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
231
|
#pragma weak SysTick_Handler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
232
|
#pragma weak WWDG_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
233
|
#pragma weak PVD_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
234
|
#pragma weak TAMPER_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
235
|
#pragma weak RTC_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
236
|
#pragma weak FLASH_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
237
|
#pragma weak RCC_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
238
|
#pragma weak EXTI0_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
239
|
#pragma weak EXTI1_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
240
|
#pragma weak EXTI2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
241
|
#pragma weak EXTI3_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
242
|
#pragma weak EXTI4_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
243
|
#pragma weak DMA1_Channel1_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
244
|
#pragma weak DMA1_Channel2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
245
|
#pragma weak DMA1_Channel3_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
246
|
#pragma weak DMA1_Channel4_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
247
|
#pragma weak DMA1_Channel5_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
248
|
#pragma weak DMA1_Channel6_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
249
|
#pragma weak DMA1_Channel7_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
250
|
#pragma weak ADC1_2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
251
|
#pragma weak USB_HP_CAN1_TX_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
252
|
#pragma weak USB_LP_CAN1_RX0_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
253
|
#pragma weak CAN1_RX1_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
254
|
#pragma weak CAN1_SCE_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
255
|
#pragma weak EXTI9_5_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
256
|
#pragma weak TIM1_BRK_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
257
|
#pragma weak TIM1_UP_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
258
|
#pragma weak TIM1_TRG_COM_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
259
|
#pragma weak TIM1_CC_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
260
|
#pragma weak TIM2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
261
|
#pragma weak TIM3_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
262
|
#pragma weak TIM4_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
263
|
#pragma weak I2C1_EV_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
264
|
#pragma weak I2C1_ER_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
265
|
#pragma weak I2C2_EV_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
266
|
#pragma weak I2C2_ER_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
267
|
#pragma weak SPI1_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
268
|
#pragma weak SPI2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
269
|
#pragma weak USART1_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
270
|
#pragma weak USART2_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
271
|
#pragma weak USART3_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
272
|
#pragma weak EXTI15_10_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
273
|
#pragma weak RTCAlarm_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
274
|
#pragma weak USBWakeUp_IRQHandler = Default_Handler
|
Sergunb |
0:8f0d870509fe
|
275
|
|
Sergunb |
0:8f0d870509fe
|
276
|
|
Sergunb |
0:8f0d870509fe
|
277
|
/**
|
Sergunb |
0:8f0d870509fe
|
278
|
* @brief This is the code that gets called when the processor receives an
|
Sergunb |
0:8f0d870509fe
|
279
|
* unexpected interrupt. This simply enters an infinite loop,
|
Sergunb |
0:8f0d870509fe
|
280
|
* preserving the system state for examination by a debugger.
|
Sergunb |
0:8f0d870509fe
|
281
|
* @param None
|
Sergunb |
0:8f0d870509fe
|
282
|
* @retval None
|
Sergunb |
0:8f0d870509fe
|
283
|
*/
|
Sergunb |
0:8f0d870509fe
|
284
|
static void Default_Handler(void)
|
Sergunb |
0:8f0d870509fe
|
285
|
{
|
Sergunb |
0:8f0d870509fe
|
286
|
/* Go into an infinite loop. */
|
Sergunb |
0:8f0d870509fe
|
287
|
while (1)
|
Sergunb |
0:8f0d870509fe
|
288
|
{
|
Sergunb |
0:8f0d870509fe
|
289
|
}
|
Sergunb |
0:8f0d870509fe
|
290
|
}
|
Sergunb |
0:8f0d870509fe
|
291
|
|
Sergunb |
0:8f0d870509fe
|
292
|
/*********************** (C) COPYRIGHT 2009 Coocox ************END OF FILE*****/
|