1; ****************************************************************************
2; Copyright (c) 2019, Nations Technologies Inc.
3;
4; All rights reserved.
5; ****************************************************************************
6;
7; Redistribution and use in source and binary forms, with or without
8; modification, are permitted provided that the following conditions are met:
9;
10; - Redistributions of source code must retain the above copyright notice,
11; this list of conditions and the disclaimer below.
12;
13; Nations name may not be used to endorse or promote products derived from
14; this software without specific prior written permission.
15;
16; DISCLAIMER: THIS SOFTWARE IS PROVIDED BY NATIONS "AS IS" AND ANY EXPRESS OR
17; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
19; DISCLAIMED. IN NO EVENT SHALL NATIONS BE LIABLE FOR ANY DIRECT, INDIRECT,
20; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22; OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26; ****************************************************************************
27
28; Amount of memory (in bytes) allocated for Stack
29; Tailor this value to your application needs
30; <h> Stack Configuration
31;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
32; </h>
33
34    MODULE  ?cstartup
35
36        ;; Forward declaration of sections.
37        SECTION CSTACK:DATA:NOROOT(3)
38
39        SECTION .intvec:CODE:NOROOT(2)
40
41        EXTERN  __iar_program_start
42        EXTERN  SystemInit
43        PUBLIC  __vector_table
44
45        DATA
46
47__vector_table
48        DCD     sfe(CSTACK)
49        DCD     Reset_Handler             ; Reset Handler
50        DCD     NMI_Handler               ; NMI Handler
51        DCD     HardFault_Handler         ; Hard Fault Handler
52        DCD     MemManage_Handler         ; MPU Fault Handler
53        DCD     BusFault_Handler          ; Bus Fault Handler
54        DCD     UsageFault_Handler        ; Usage Fault Handler
55        DCD     0                         ; Reserved
56        DCD     0                         ; Reserved
57        DCD     0                         ; Reserved
58        DCD     0                         ; Reserved
59        DCD     SVC_Handler               ; SVCall Handler
60        DCD     DebugMon_Handler          ; Debug Monitor Handler
61        DCD     0                         ; Reserved
62        DCD     PendSV_Handler            ; PendSV Handler
63        DCD     SysTick_Handler           ; SysTick Handler
64
65         ; External Interrupts
66        DCD     WWDG_IRQHandler           ; Window Watchdog
67        DCD     PVD_IRQHandler            ; PVD through EXTI Line detect
68        DCD     TAMPER_IRQHandler         ; RTC Tamper interrupt or Timestamp through EXTI line 19 interrupt
69        DCD     RTC_WKUP_IRQHandler       ; RTC_WKUP
70        DCD     FLASH_IRQHandler          ; Flash
71        DCD     RCC_IRQHandler            ; RCC
72        DCD     EXTI0_IRQHandler          ; EXTI Line 0
73        DCD     EXTI1_IRQHandler          ; EXTI Line 1
74        DCD     EXTI2_IRQHandler          ; EXTI Line 2
75        DCD     EXTI3_IRQHandler          ; EXTI Line 3
76        DCD     EXTI4_IRQHandler          ; EXTI Line 4
77        DCD     DMA_Channel1_IRQHandler   ; DMA1 Channel 1
78        DCD     DMA_Channel2_IRQHandler   ; DMA1 Channel 2
79        DCD     DMA_Channel3_IRQHandler   ; DMA1 Channel 3
80        DCD     DMA_Channel4_IRQHandler   ; DMA1 Channel 4
81        DCD     DMA_Channel5_IRQHandler   ; DMA1 Channel 5
82        DCD     DMA_Channel6_IRQHandler   ; DMA1 Channel 6
83        DCD     DMA_Channel7_IRQHandler   ; DMA1 Channel 7
84        DCD     DMA_Channel8_IRQHandler   ; DMA Channel 8
85        DCD     ADC_IRQHandler            ; ADC
86        DCD     USB_HP_IRQHandler         ; USB High Priority
87        DCD     USB_LP_IRQHandler         ; USB Low  Priority
88        DCD     COMP_1_2_IRQHandler       ; COMP1 & COMP2 through EXTI line 21/22
89        DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5
90        DCD     TIM1_BRK_IRQHandler       ; TIM1 Break
91        DCD     TIM1_UP_IRQHandler        ; TIM1 Update
92        DCD     TIM1_TRG_COM_IRQHandler   ; TIM1 Trigger and Commutation
93        DCD     TIM1_CC_IRQHandler        ; TIM1 Capture Compare
94        DCD     TIM2_IRQHandler           ; TIM2
95        DCD     TIM3_IRQHandler           ; TIM3
96        DCD     TIM4_IRQHandler           ; TIM4
97        DCD     I2C1_EV_IRQHandler        ; I2C1 Event
98        DCD     I2C1_ER_IRQHandler        ; I2C1 Error
99        DCD     I2C2_EV_IRQHandler        ; I2C2 Event
100        DCD     I2C2_ER_IRQHandler        ; I2C2 Error
101        DCD     SPI1_IRQHandler           ; SPI1
102        DCD     SPI2_IRQHandler           ; SPI2
103        DCD     USART1_IRQHandler         ; USART1
104        DCD     USART2_IRQHandler         ; USART2
105        DCD     USART3_IRQHandler         ; USART3
106        DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10
107        DCD     RTCAlarm_IRQHandler       ; RTC Alarm through EXTI Line
108        DCD     USBWakeUp_IRQHandler      ; USB Wakeup from suspend
109        DCD     TIM8_BRK_IRQHandler       ; TIM8 Break
110        DCD     TIM8_UP_IRQHandler        ; TIM8 Update
111        DCD     TIM8_TRG_COM_IRQHandler   ; TIM8 Trigger and Commutation
112        DCD     TIM8_CC_IRQHandler        ; TIM8 Capture Compare
113        DCD     UART4_IRQHandler          ; UART4
114        DCD     UART5_IRQHandler          ; UART5
115        DCD     LPUART_IRQHandler         ; LPUART
116        DCD     TIM5_IRQHandler           ; TIM5
117        DCD     TIM6_IRQHandler           ; TIM6
118        DCD     TIM7_IRQHandler           ; TIM7
119        DCD     CAN_TX_IRQHandler         ; CAN TX
120        DCD     CAN_RX0_IRQHandler        ; CAN RX0
121        DCD     CAN_RX1_IRQHandler        ; CAN RX1
122        DCD     CAN_SCE_IRQHandler        ; CAN SCE
123        DCD     LPUART_WKUP_IRQHandler    ; LPUART_WKUP
124        DCD     LPTIM_WKUP_IRQHandler     ; LPTIM_WKUP
125        DCD     LCD_IRQHandler            ; LCD
126        DCD     SAC_IRQHandler            ; SAC
127        DCD     MMU_IRQHandler            ; MMU
128        DCD     TSC_IRQHandler            ; TSC
129        DCD     RAMC_PERR_IRQHandler      ; RAMC ERR
130        DCD     TIM9_IRQHandler           ; TIM9
131        DCD     UCDR_IRQHandler           ; UCDR ERR
132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
133;;
134;; Default interrupt handlers.
135;;
136        THUMB
137
138        PUBWEAK Reset_Handler
139        SECTION .text:CODE:REORDER:NOROOT(2)
140Reset_Handler
141        LDR     R0, =SystemInit
142        BLX     R0
143        LDR     R0, =__iar_program_start
144        BX      R0
145
146        PUBWEAK NMI_Handler
147        SECTION .text:CODE:REORDER:NOROOT(1)
148NMI_Handler
149        B NMI_Handler
150
151        PUBWEAK HardFault_Handler
152        SECTION .text:CODE:REORDER:NOROOT(1)
153HardFault_Handler
154        B HardFault_Handler
155
156        PUBWEAK MemManage_Handler
157        SECTION .text:CODE:REORDER:NOROOT(1)
158MemManage_Handler
159        B MemManage_Handler
160
161        PUBWEAK BusFault_Handler
162        SECTION .text:CODE:REORDER:NOROOT(1)
163BusFault_Handler
164        B BusFault_Handler
165
166        PUBWEAK UsageFault_Handler
167        SECTION .text:CODE:REORDER:NOROOT(1)
168UsageFault_Handler
169        B UsageFault_Handler
170
171        PUBWEAK SVC_Handler
172        SECTION .text:CODE:REORDER:NOROOT(1)
173SVC_Handler
174        B SVC_Handler
175
176        PUBWEAK DebugMon_Handler
177        SECTION .text:CODE:REORDER:NOROOT(1)
178DebugMon_Handler
179        B DebugMon_Handler
180
181        PUBWEAK PendSV_Handler
182        SECTION .text:CODE:REORDER:NOROOT(1)
183PendSV_Handler
184        B PendSV_Handler
185
186        PUBWEAK SysTick_Handler
187        SECTION .text:CODE:REORDER:NOROOT(1)
188SysTick_Handler
189        B SysTick_Handler
190
191        PUBWEAK WWDG_IRQHandler
192        SECTION .text:CODE:REORDER:NOROOT(1)
193WWDG_IRQHandler
194        B WWDG_IRQHandler
195
196        PUBWEAK PVD_IRQHandler
197        SECTION .text:CODE:REORDER:NOROOT(1)
198PVD_IRQHandler
199        B PVD_IRQHandler
200
201        PUBWEAK TAMPER_IRQHandler
202        SECTION .text:CODE:REORDER:NOROOT(1)
203TAMPER_IRQHandler
204        B TAMPER_IRQHandler
205
206        PUBWEAK RTC_WKUP_IRQHandler
207        SECTION .text:CODE:REORDER:NOROOT(1)
208RTC_WKUP_IRQHandler
209        B RTC_WKUP_IRQHandler
210
211        PUBWEAK FLASH_IRQHandler
212        SECTION .text:CODE:REORDER:NOROOT(1)
213FLASH_IRQHandler
214        B FLASH_IRQHandler
215
216        PUBWEAK RCC_IRQHandler
217        SECTION .text:CODE:REORDER:NOROOT(1)
218RCC_IRQHandler
219        B RCC_IRQHandler
220
221        PUBWEAK EXTI0_IRQHandler
222        SECTION .text:CODE:REORDER:NOROOT(1)
223EXTI0_IRQHandler
224        B EXTI0_IRQHandler
225
226        PUBWEAK EXTI1_IRQHandler
227        SECTION .text:CODE:REORDER:NOROOT(1)
228EXTI1_IRQHandler
229        B EXTI1_IRQHandler
230
231        PUBWEAK EXTI2_IRQHandler
232        SECTION .text:CODE:REORDER:NOROOT(1)
233EXTI2_IRQHandler
234        B EXTI2_IRQHandler
235
236        PUBWEAK EXTI3_IRQHandler
237        SECTION .text:CODE:REORDER:NOROOT(1)
238EXTI3_IRQHandler
239        B EXTI3_IRQHandler
240
241        PUBWEAK EXTI4_IRQHandler
242        SECTION .text:CODE:REORDER:NOROOT(1)
243EXTI4_IRQHandler
244        B EXTI4_IRQHandler
245
246        PUBWEAK DMA_Channel1_IRQHandler
247        SECTION .text:CODE:REORDER:NOROOT(1)
248DMA_Channel1_IRQHandler
249        B DMA_Channel1_IRQHandler
250
251        PUBWEAK DMA_Channel2_IRQHandler
252        SECTION .text:CODE:REORDER:NOROOT(1)
253DMA_Channel2_IRQHandler
254        B DMA_Channel2_IRQHandler
255
256        PUBWEAK DMA_Channel3_IRQHandler
257        SECTION .text:CODE:REORDER:NOROOT(1)
258DMA_Channel3_IRQHandler
259        B DMA_Channel3_IRQHandler
260
261        PUBWEAK DMA_Channel4_IRQHandler
262        SECTION .text:CODE:REORDER:NOROOT(1)
263DMA_Channel4_IRQHandler
264        B DMA_Channel4_IRQHandler
265
266        PUBWEAK DMA_Channel5_IRQHandler
267        SECTION .text:CODE:REORDER:NOROOT(1)
268DMA_Channel5_IRQHandler
269        B DMA_Channel5_IRQHandler
270
271        PUBWEAK DMA_Channel6_IRQHandler
272        SECTION .text:CODE:REORDER:NOROOT(1)
273DMA_Channel6_IRQHandler
274        B DMA_Channel6_IRQHandler
275
276        PUBWEAK DMA_Channel7_IRQHandler
277        SECTION .text:CODE:REORDER:NOROOT(1)
278DMA_Channel7_IRQHandler
279        B DMA_Channel7_IRQHandler
280
281        PUBWEAK DMA_Channel8_IRQHandler
282        SECTION .text:CODE:REORDER:NOROOT(1)
283DMA_Channel8_IRQHandler
284        B DMA_Channel8_IRQHandler
285
286        PUBWEAK ADC_IRQHandler
287        SECTION .text:CODE:REORDER:NOROOT(1)
288ADC_IRQHandler
289        B ADC_IRQHandler
290
291        PUBWEAK USB_HP_IRQHandler
292        SECTION .text:CODE:REORDER:NOROOT(1)
293USB_HP_IRQHandler
294        B USB_HP_IRQHandler
295
296        PUBWEAK USB_LP_IRQHandler
297        SECTION .text:CODE:REORDER:NOROOT(1)
298USB_LP_IRQHandler
299        B USB_LP_IRQHandler
300
301        PUBWEAK COMP_1_2_IRQHandler
302        SECTION .text:CODE:REORDER:NOROOT(1)
303COMP_1_2_IRQHandler
304        B COMP_1_2_IRQHandler
305
306        PUBWEAK EXTI9_5_IRQHandler
307        SECTION .text:CODE:REORDER:NOROOT(1)
308EXTI9_5_IRQHandler
309        B EXTI9_5_IRQHandler
310
311        PUBWEAK TIM1_BRK_IRQHandler
312        SECTION .text:CODE:REORDER:NOROOT(1)
313TIM1_BRK_IRQHandler
314        B TIM1_BRK_IRQHandler
315
316        PUBWEAK TIM1_UP_IRQHandler
317        SECTION .text:CODE:REORDER:NOROOT(1)
318TIM1_UP_IRQHandler
319        B TIM1_UP_IRQHandler
320
321        PUBWEAK TIM1_TRG_COM_IRQHandler
322        SECTION .text:CODE:REORDER:NOROOT(1)
323TIM1_TRG_COM_IRQHandler
324        B TIM1_TRG_COM_IRQHandler
325
326        PUBWEAK TIM1_CC_IRQHandler
327        SECTION .text:CODE:REORDER:NOROOT(1)
328TIM1_CC_IRQHandler
329        B TIM1_CC_IRQHandler
330
331        PUBWEAK TIM2_IRQHandler
332        SECTION .text:CODE:REORDER:NOROOT(1)
333TIM2_IRQHandler
334        B TIM2_IRQHandler
335
336        PUBWEAK TIM3_IRQHandler
337        SECTION .text:CODE:REORDER:NOROOT(1)
338TIM3_IRQHandler
339        B TIM3_IRQHandler
340
341        PUBWEAK TIM4_IRQHandler
342        SECTION .text:CODE:REORDER:NOROOT(1)
343TIM4_IRQHandler
344        B TIM4_IRQHandler
345
346        PUBWEAK I2C1_EV_IRQHandler
347        SECTION .text:CODE:REORDER:NOROOT(1)
348I2C1_EV_IRQHandler
349        B I2C1_EV_IRQHandler
350
351        PUBWEAK I2C1_ER_IRQHandler
352        SECTION .text:CODE:REORDER:NOROOT(1)
353I2C1_ER_IRQHandler
354        B I2C1_ER_IRQHandler
355
356        PUBWEAK I2C2_EV_IRQHandler
357        SECTION .text:CODE:REORDER:NOROOT(1)
358I2C2_EV_IRQHandler
359        B I2C2_EV_IRQHandler
360
361        PUBWEAK I2C2_ER_IRQHandler
362        SECTION .text:CODE:REORDER:NOROOT(1)
363I2C2_ER_IRQHandler
364        B I2C2_ER_IRQHandler
365
366        PUBWEAK SPI1_IRQHandler
367        SECTION .text:CODE:REORDER:NOROOT(1)
368SPI1_IRQHandler
369        B SPI1_IRQHandler
370
371        PUBWEAK SPI2_IRQHandler
372        SECTION .text:CODE:REORDER:NOROOT(1)
373SPI2_IRQHandler
374        B SPI2_IRQHandler
375
376        PUBWEAK USART1_IRQHandler
377        SECTION .text:CODE:REORDER:NOROOT(1)
378USART1_IRQHandler
379        B USART1_IRQHandler
380
381        PUBWEAK USART2_IRQHandler
382        SECTION .text:CODE:REORDER:NOROOT(1)
383USART2_IRQHandler
384        B USART2_IRQHandler
385
386        PUBWEAK USART3_IRQHandler
387        SECTION .text:CODE:REORDER:NOROOT(1)
388USART3_IRQHandler
389        B USART3_IRQHandler
390
391        PUBWEAK EXTI15_10_IRQHandler
392        SECTION .text:CODE:REORDER:NOROOT(1)
393EXTI15_10_IRQHandler
394        B EXTI15_10_IRQHandler
395
396        PUBWEAK RTCAlarm_IRQHandler
397        SECTION .text:CODE:REORDER:NOROOT(1)
398RTCAlarm_IRQHandler
399        B RTCAlarm_IRQHandler
400
401        PUBWEAK USBWakeUp_IRQHandler
402        SECTION .text:CODE:REORDER:NOROOT(1)
403USBWakeUp_IRQHandler
404        B USBWakeUp_IRQHandler
405
406        PUBWEAK TIM8_BRK_IRQHandler
407        SECTION .text:CODE:REORDER:NOROOT(1)
408TIM8_BRK_IRQHandler
409        B TIM8_BRK_IRQHandler
410
411        PUBWEAK TIM8_UP_IRQHandler
412        SECTION .text:CODE:REORDER:NOROOT(1)
413TIM8_UP_IRQHandler
414        B TIM8_UP_IRQHandler
415
416        PUBWEAK TIM8_TRG_COM_IRQHandler
417        SECTION .text:CODE:REORDER:NOROOT(1)
418TIM8_TRG_COM_IRQHandler
419        B TIM8_TRG_COM_IRQHandler
420
421        PUBWEAK TIM8_CC_IRQHandler
422        SECTION .text:CODE:REORDER:NOROOT(1)
423TIM8_CC_IRQHandler
424        B TIM8_CC_IRQHandler
425
426        PUBWEAK UART4_IRQHandler
427        SECTION .text:CODE:REORDER:NOROOT(1)
428UART4_IRQHandler
429        B UART4_IRQHandler
430
431        PUBWEAK UART5_IRQHandler
432        SECTION .text:CODE:REORDER:NOROOT(1)
433UART5_IRQHandler
434        B UART5_IRQHandler
435
436        PUBWEAK LPUART_IRQHandler
437        SECTION .text:CODE:REORDER:NOROOT(1)
438LPUART_IRQHandler
439        B LPUART_IRQHandler
440
441        PUBWEAK TIM5_IRQHandler
442        SECTION .text:CODE:REORDER:NOROOT(1)
443TIM5_IRQHandler
444        B TIM5_IRQHandler
445
446        PUBWEAK TIM6_IRQHandler
447        SECTION .text:CODE:REORDER:NOROOT(1)
448TIM6_IRQHandler
449        B TIM6_IRQHandler
450
451        PUBWEAK TIM7_IRQHandler
452        SECTION .text:CODE:REORDER:NOROOT(1)
453TIM7_IRQHandler
454        B TIM7_IRQHandler
455
456        PUBWEAK CAN_TX_IRQHandler
457        SECTION .text:CODE:REORDER:NOROOT(1)
458CAN_TX_IRQHandler
459        B CAN_TX_IRQHandler
460
461        PUBWEAK CAN_RX0_IRQHandler
462        SECTION .text:CODE:REORDER:NOROOT(1)
463CAN_RX0_IRQHandler
464        B CAN_RX0_IRQHandler
465
466        PUBWEAK CAN_RX1_IRQHandler
467        SECTION .text:CODE:REORDER:NOROOT(1)
468CAN_RX1_IRQHandler
469        B CAN_RX1_IRQHandler
470
471        PUBWEAK CAN_SCE_IRQHandler
472        SECTION .text:CODE:REORDER:NOROOT(1)
473CAN_SCE_IRQHandler
474        B CAN_SCE_IRQHandler
475
476        PUBWEAK LPUART_WKUP_IRQHandler
477        SECTION .text:CODE:REORDER:NOROOT(1)
478LPUART_WKUP_IRQHandler
479        B LPUART_WKUP_IRQHandler
480
481        PUBWEAK LPTIM_WKUP_IRQHandler
482        SECTION .text:CODE:REORDER:NOROOT(1)
483LPTIM_WKUP_IRQHandler
484        B LPTIM_WKUP_IRQHandler
485
486        PUBWEAK LCD_IRQHandler
487        SECTION .text:CODE:REORDER:NOROOT(1)
488LCD_IRQHandler
489        B LCD_IRQHandler
490
491        PUBWEAK SAC_IRQHandler
492        SECTION .text:CODE:REORDER:NOROOT(1)
493SAC_IRQHandler
494        B SAC_IRQHandler
495
496        PUBWEAK MMU_IRQHandler
497        SECTION .text:CODE:REORDER:NOROOT(1)
498MMU_IRQHandler
499        B MMU_IRQHandler
500
501        PUBWEAK TSC_IRQHandler
502        SECTION .text:CODE:REORDER:NOROOT(1)
503TSC_IRQHandler
504        B TSC_IRQHandler
505
506        PUBWEAK RAMC_PERR_IRQHandler
507        SECTION .text:CODE:REORDER:NOROOT(1)
508RAMC_PERR_IRQHandler
509        B RAMC_PERR_IRQHandler
510
511        PUBWEAK TIM9_IRQHandler
512        SECTION .text:CODE:REORDER:NOROOT(1)
513TIM9_IRQHandler
514        B TIM9_IRQHandler
515
516        PUBWEAK UCDR_IRQHandler
517        SECTION .text:CODE:REORDER:NOROOT(1)
518UCDR_IRQHandler
519        B UCDR_IRQHandler
520
521
522        END
523
524