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>&copy; 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