1 /**
2 ******************************************************************************
3 * @file startup_tae32f53xx.c
4 * @author MCD Application Team
5 * @brief CMSIS-Core(M) Device Startup File for a tae32f53xx(Cortex-M3) Device
6 *
7 ******************************************************************************
8 * @attention
9 *
10 * <h2><center>© Copyright (c) 2020 Tai-Action.
11 * All rights reserved.</center></h2>
12 *
13 * This software is licensed by Tai-Action under BSD 3-Clause license,
14 * the "License"; You may not use this file except in compliance with the
15 * License. You may obtain a copy of the License at:
16 * opensource.org/licenses/BSD-3-Clause
17 *
18 ******************************************************************************
19 */
20
21 /* Includes ------------------------------------------------------------------*/
22 #include "tae32f53xx_ll.h"
23
24
25 /** @addtogroup TAE_CMSIS
26 * @{
27 */
28
29 /** @defgroup TAE32F53xx_Startup TAE32F53xx Startup
30 * @brief TAE32F53xx Startup
31 * @{
32 */
33
34
35 /* Private define ------------------------------------------------------------*/
36 /* Private typedef -----------------------------------------------------------*/
37 /** @defgroup TAE32F53xx_Startup_Private_Types TAE32F53xx Startup Private Types
38 * @brief TAE32F53xx Startup Private Types
39 * @{
40 */
41
42 /**
43 * @brief Exception / Interrupt Handler Function Prototype
44 */
45 typedef void(*VECTOR_TABLE_Type)(void);
46
47 /**
48 * @}
49 */
50
51 /* Private macro -------------------------------------------------------------*/
52 /* Private function prototypes -----------------------------------------------*/
53 /** @defgroup TAE32F53xx_Startup_Private_Functions TAE32F53xx Startup Private Functions
54 * @brief TAE32F53xx Startup Private Functions
55 * @{
56 */
57
58 /**
59 * @brief Default empty handler
60 */
61 void __NO_RETURN Default_Handler(void);
62
63 /**
64 * @brief Reset handler
65 */
66 void __NO_RETURN Reset_Handler(void);
67
68 /**
69 * @brief Enter PreMain (C library entry point)
70 */
71 void __NO_RETURN __PROGRAM_START(void);
72
73 /**
74 * @brief Cortex-M3 core exceptions handlers
75 */
76 __WEAK_ALIAS_FUNC(NMI_Handler, Default_Handler)
77 __WEAK_ALIAS_FUNC(HardFault_Handler, Default_Handler)
78 __WEAK_ALIAS_FUNC(MemManage_Handler, Default_Handler)
79 __WEAK_ALIAS_FUNC(BusFault_Handler, Default_Handler)
80 __WEAK_ALIAS_FUNC(UsageFault_Handler, Default_Handler)
81 __WEAK_ALIAS_FUNC(SVC_Handler, Default_Handler)
82 __WEAK_ALIAS_FUNC(DebugMon_Handler, Default_Handler)
83 __WEAK_ALIAS_FUNC(PendSV_Handler, Default_Handler)
84 __WEAK_ALIAS_FUNC(SysTick_Handler, Default_Handler)
85
86 /**
87 * @brief Peripherals interrupt handlers
88 */
89 __WEAK_ALIAS_FUNC(I2C0_IRQHandler, Default_Handler)
90 __WEAK_ALIAS_FUNC(I2C1_IRQHandler, Default_Handler)
91 __WEAK_ALIAS_FUNC(UART0_IRQHandler, Default_Handler)
92 __WEAK_ALIAS_FUNC(UART1_IRQHandler, Default_Handler)
93 __WEAK_ALIAS_FUNC(TMR0_IRQHandler, Default_Handler)
94 __WEAK_ALIAS_FUNC(TMR1_IRQHandler, Default_Handler)
95 __WEAK_ALIAS_FUNC(TMR2_IRQHandler, Default_Handler)
96 __WEAK_ALIAS_FUNC(TMR3_IRQHandler, Default_Handler)
97 __WEAK_ALIAS_FUNC(LVD_IRQHandler, Default_Handler)
98 __WEAK_ALIAS_FUNC(TMR4_IRQHandler, Default_Handler)
99 __WEAK_ALIAS_FUNC(TMR5_IRQHandler, Default_Handler)
100 __WEAK_ALIAS_FUNC(TMR6_IRQHandler, Default_Handler)
101 __WEAK_ALIAS_FUNC(TMR7_IRQHandler, Default_Handler)
102 __WEAK_ALIAS_FUNC(IWDG_IRQHandler, Default_Handler)
103 __WEAK_ALIAS_FUNC(WWDG_IRQHandler, Default_Handler)
104 __WEAK_ALIAS_FUNC(IIR0_IRQHandler, Default_Handler)
105 __WEAK_ALIAS_FUNC(IIR1_IRQHandler, Default_Handler)
106 __WEAK_ALIAS_FUNC(IIR2_IRQHandler, Default_Handler)
107 __WEAK_ALIAS_FUNC(IIR3_IRQHandler, Default_Handler)
108 __WEAK_ALIAS_FUNC(IIR4_IRQHandler, Default_Handler)
109 __WEAK_ALIAS_FUNC(ECU_IRQHandler, Default_Handler)
110 __WEAK_ALIAS_FUNC(DMA_IRQHandler, Default_Handler)
111 __WEAK_ALIAS_FUNC(CAN_IRQHandler, Default_Handler)
112 __WEAK_ALIAS_FUNC(GPIOA_IRQHandler, Default_Handler)
113 __WEAK_ALIAS_FUNC(GPIOB_IRQHandler, Default_Handler)
114 __WEAK_ALIAS_FUNC(GPIOC_IRQHandler, Default_Handler)
115 __WEAK_ALIAS_FUNC(GPIOD_IRQHandler, Default_Handler)
116 __WEAK_ALIAS_FUNC(FLASH_IRQHandler, Default_Handler)
117 __WEAK_ALIAS_FUNC(DFLASH_IRQHandler, Default_Handler)
118 __WEAK_ALIAS_FUNC(HRPWM_MSTR_IRQHandler, Default_Handler)
119 __WEAK_ALIAS_FUNC(HRPWM_SLV0_IRQHandler, Default_Handler)
120 __WEAK_ALIAS_FUNC(HRPWM_SLV1_IRQHandler, Default_Handler)
121 __WEAK_ALIAS_FUNC(HRPWM_SLV2_IRQHandler, Default_Handler)
122 __WEAK_ALIAS_FUNC(HRPWM_SLV3_IRQHandler, Default_Handler)
123 __WEAK_ALIAS_FUNC(HRPWM_SLV4_IRQHandler, Default_Handler)
124 __WEAK_ALIAS_FUNC(HRPWM_SLV5_IRQHandler, Default_Handler)
125 __WEAK_ALIAS_FUNC(HRPWM_FLT_IRQHandler, Default_Handler)
126 __WEAK_ALIAS_FUNC(ADC0_NORM_IRQHandler, Default_Handler)
127 __WEAK_ALIAS_FUNC(ADC0_HALF_IRQHandler, Default_Handler)
128 __WEAK_ALIAS_FUNC(ADC0_FULL_IRQHandler, Default_Handler)
129 __WEAK_ALIAS_FUNC(ADC0_SAMP_IRQHandler, Default_Handler)
130 __WEAK_ALIAS_FUNC(ADC1_NORM_IRQHandler, Default_Handler)
131 __WEAK_ALIAS_FUNC(ADC1_HALF_IRQHandler, Default_Handler)
132 __WEAK_ALIAS_FUNC(ADC1_FULL_IRQHandler, Default_Handler)
133 __WEAK_ALIAS_FUNC(ADC1_SAMP_IRQHandler, Default_Handler)
134 __WEAK_ALIAS_FUNC(DAC_IRQHandler, Default_Handler)
135 __WEAK_ALIAS_FUNC(CMP_IRQHandler, Default_Handler)
136 __WEAK_ALIAS_FUNC(USB_STA_IRQHandler, Default_Handler)
137 __WEAK_ALIAS_FUNC(USB_DET_IRQHandler, Default_Handler)
138 __WEAK_ALIAS_FUNC(USB_LPM_IRQHandler, Default_Handler)
139 __WEAK_ALIAS_FUNC(USB_EP_IRQHandler, Default_Handler)
140 __WEAK_ALIAS_FUNC(DALI_IRQHandler, Default_Handler)
141
142 /**
143 * @}
144 */
145
146 /* Private variables ---------------------------------------------------------*/
147 /** @defgroup TAE32F53xx_Startup_Private_Variables TAE32F53xx Startup Private Variables
148 * @brief TAE32F53xx Startup Private Variables
149 * @{
150 */
151
152 /**
153 * @brief Stack pointer statement
154 */
155 extern uint32_t __INITIAL_SP;
156
157
158 #if defined (__GNUC__) /*!< GCC Compiler */
159 #pragma GCC diagnostic push
160 #pragma GCC diagnostic ignored "-Wpedantic"
161 #endif
162
163 /**
164 * @brief TAE32F53xx Vector Table Definition
165 */
166 const VECTOR_TABLE_Type __VECTOR_TABLE[] __VECTOR_TABLE_ATTRIBUTE = {
167
168 (VECTOR_TABLE_Type) &__INITIAL_SP, /*!< Initial Stack Pointer */
169
170 /* Processor Exceptions */
171 Reset_Handler, /*!< Reset Handler */
172 NMI_Handler, /*!< -14 NMI Handler */
173 HardFault_Handler, /*!< -13 Hard Fault Handler */
174 MemManage_Handler, /*!< -12 MPU Fault Handler */
175 BusFault_Handler, /*!< -11 Bus Fault Handler */
176 UsageFault_Handler, /*!< -10 Usage Fault Handler */
177 0, /*!< Reserved */
178 0, /*!< Reserved */
179 0, /*!< Reserved */
180 0, /*!< Reserved */
181 SVC_Handler, /*!< -5 SVCall Handler */
182 DebugMon_Handler, /*!< -4 Debug Monitor Handler */
183 0, /*!< Reserved */
184 PendSV_Handler, /*!< -2 PendSV Handler */
185 SysTick_Handler, /*!< -1 SysTick Handler */
186
187 /* Processor Interrupt */
188 I2C0_IRQHandler, /*!< 0 I2C0 Interrupt Handler */
189 I2C1_IRQHandler, /*!< 1 I2C1 Interrupt Handler */
190 UART0_IRQHandler, /*!< 2 UART0 Interrupt Handler */
191 UART1_IRQHandler, /*!< 3 UART1 Interrupt Handler */
192 TMR0_IRQHandler, /*!< 4 TIMER0 Interrupt Handler */
193 TMR1_IRQHandler, /*!< 5 TIMER1 Interrupt Handler */
194 TMR2_IRQHandler, /*!< 6 TIMER2 Interrupt Handler */
195 TMR3_IRQHandler, /*!< 7 TIMER3 Interrupt Handler */
196 LVD_IRQHandler, /*!< 8 LVD Interrupt Handler */
197 TMR4_IRQHandler, /*!< 9 TIMER4 Interrupt Handler */
198 TMR5_IRQHandler, /*!< 10 TIMER5 Interrupt Handler */
199 TMR6_IRQHandler, /*!< 11 TIMER6 Interrupt Handler */
200 TMR7_IRQHandler, /*!< 12 TIMER7 Interrupt Handler */
201 IWDG_IRQHandler, /*!< 13 IWDG Interrupt Handler */
202 WWDG_IRQHandler, /*!< 14 WWDG Interrupt Handler */
203 IIR0_IRQHandler, /*!< 15 IIR0 Interrupt Handler */
204 IIR1_IRQHandler, /*!< 16 IIR1 Interrupt Handler */
205 IIR2_IRQHandler, /*!< 17 IIR2 Interrupt Handler */
206 IIR3_IRQHandler, /*!< 18 IIR3 Interrupt Handler */
207 IIR4_IRQHandler, /*!< 19 IIR4 Interrupt Handler */
208 ECU_IRQHandler, /*!< 20 ECU Interrupt Handler */
209 DMA_IRQHandler, /*!< 21 DMA Interrupt Handler */
210 CAN_IRQHandler, /*!< 22 CAN Interrupt Handler */
211 GPIOA_IRQHandler, /*!< 23 GPIOA Interrupt Handler */
212 GPIOB_IRQHandler, /*!< 24 GPIOB Interrupt Handler */
213 GPIOC_IRQHandler, /*!< 25 GPIOC Interrupt Handler */
214 GPIOD_IRQHandler, /*!< 26 GPIOD Interrupt Handler */
215 FLASH_IRQHandler, /*!< 27 FLASH Interrupt Handler */
216 DFLASH_IRQHandler, /*!< 28 DFLASH Interrupt Handler */
217 HRPWM_MSTR_IRQHandler, /*!< 29 HRPWM Master Interrupt Handler */
218 HRPWM_SLV0_IRQHandler, /*!< 30 HRPWM Slave0 Interrupt Handler */
219 HRPWM_SLV1_IRQHandler, /*!< 31 HRPWM Slave1 Interrupt Handler */
220 HRPWM_SLV2_IRQHandler, /*!< 32 HRPWM Slave2 Interrupt Handler */
221 HRPWM_SLV3_IRQHandler, /*!< 33 HRPWM Slave3 Interrupt Handler */
222 HRPWM_SLV4_IRQHandler, /*!< 34 HRPWM Slave4 Interrupt Handler */
223 HRPWM_SLV5_IRQHandler, /*!< 35 HRPWM Slave5 Interrupt Handler */
224 HRPWM_FLT_IRQHandler, /*!< 36 HRPWM Fault Interrupt Handler */
225 ADC0_NORM_IRQHandler, /*!< 37 ADC0 Normal Interrupt Handler */
226 ADC0_HALF_IRQHandler, /*!< 38 ADC0 Half Interrupt Handler */
227 ADC0_FULL_IRQHandler, /*!< 39 ADC0 Full Interrupt Handler */
228 ADC0_SAMP_IRQHandler, /*!< 40 ADC0 Sample Interrupt Handler */
229 ADC1_NORM_IRQHandler, /*!< 41 ADC1 Normal Interrupt Handler */
230 ADC1_HALF_IRQHandler, /*!< 42 ADC1 Half Interrupt Handler */
231 ADC1_FULL_IRQHandler, /*!< 43 ADC1 Full Interrupt Handler */
232 ADC1_SAMP_IRQHandler, /*!< 44 ADC1 Sample Interrupt Handler */
233 DAC_IRQHandler, /*!< 45 DAC Interrupt Handler */
234 CMP_IRQHandler, /*!< 46 CMP Interrupt Handler */
235 USB_STA_IRQHandler, /*!< 47 USB Status Interrupt Handler */
236 USB_DET_IRQHandler, /*!< 48 USB Detect Interrupt Handler */
237 USB_LPM_IRQHandler, /*!< 49 USB LPM Interrupt Handler */
238 USB_EP_IRQHandler, /*!< 50 USB Endpoint Interrupt Handler */
239 DALI_IRQHandler, /*!< 51 DALI Interrupt Handler */
240 };
241
242 #if defined (__GNUC__) /*!< GCC Compiler */
243 #pragma GCC diagnostic pop
244 #endif
245
246 /**
247 * @}
248 */
249
250 /* Exported functions --------------------------------------------------------*/
251 /* Private functions ---------------------------------------------------------*/
252 /** @defgroup TAE32F53xx_Startup_Private_Functions TAE32F53xx Startup Private Functions
253 * @brief TAE32F53xx Startup Private Functions
254 * @{
255 */
256
257 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
258 #pragma clang diagnostic push
259 #pragma clang diagnostic ignored "-Wmissing-noreturn"
260 #endif
261
262 /**
263 * @brief Reset Handler called on controller reset
264 * @param None
265 * @return None
266 */
Reset_Handler(void)267 void Reset_Handler(void)
268 {
269 SystemInit(); /* CMSIS System Initialization */
270 __PROGRAM_START(); /* Enter PreMain (C library entry point) */
271 }
272
273 /**
274 * @brief Default Handler for Exceptions / Interrupts
275 * @param None
276 * @return None
277 */
Default_Handler(void)278 void Default_Handler(void)
279 {
280 while (1);
281 }
282
283 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
284 #pragma clang diagnostic pop
285 #endif
286
287 /**
288 * @}
289 */
290
291
292
293 /**
294 * @}
295 */
296
297 /**
298 * @}
299 */
300
301 /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/
302
303