1  .syntax unified
2  .cpu cortex-m33
3  .fpu softvfp
4  .thumb
5
6.global  g_pfnVectors
7.global  Default_Handler
8.extern  FPU_Enable
9/* start address for the initialization values of the .data section.
10defined in linker script */
11.word  _sidata
12/* start address for the .data section. defined in linker script */
13.word  _sdata
14/* end address for the .data section. defined in linker script */
15.word  _edata
16/* start address for the .bss section. defined in linker script */
17.word  _sbss
18/* end address for the .bss section. defined in linker script */
19.word  _ebss
20/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
21
22/**
23 * @brief  This is the code that gets called when the processor first
24 *          starts execution following a reset event. Only the absolutely
25 *          necessary set is performed, after which the application
26 *          supplied main() routine is called.
27 * @param  None
28 * @retval : None
29*/
30
31    .section  .text.Reset_Handler
32  .weak  Reset_Handler
33  .type  Reset_Handler, %function
34Reset_Handler:
35  ldr   sp, =_estack      /* set stack pointer */
36
37/* Call the clock system initialization function.*/
38  bl  FPU_Enable
39
40/* Copy the data segment initializers from flash to SRAM */
41  ldr r0, =_sdata
42  ldr r1, =_edata
43  ldr r2, =_sidata
44  movs r3, #0
45  b LoopCopyDataInit
46
47CopyDataInit:
48  ldr r4, [r2, r3]
49  str r4, [r0, r3]
50  adds r3, r3, #4
51
52LoopCopyDataInit:
53  adds r4, r0, r3
54  cmp r4, r1
55  bcc CopyDataInit
56/* Zero fill the bss segment. */
57  ldr r2, =_sbss
58  ldr r4, =_ebss
59  movs r3, #0
60  b LoopFillZerobss
61
62FillZerobss:
63  str  r3, [r2]
64  adds r2, r2, #4
65
66LoopFillZerobss:
67  cmp r2, r4
68  bcc FillZerobss
69
70/* Call static constructors */
71    bl __libc_init_array
72/* Call the application's entry point.*/
73  bl  entry
74  bx  lr
75.size  Reset_Handler, .-Reset_Handler
76
77/**
78 * @brief  This is the code that gets called when the processor receives an
79 *         unexpected interrupt.  This simply enters an infinite loop, preserving
80 *         the system state for examination by a debugger.
81 * @param  None
82 * @retval None
83*/
84    .section  .text.Default_Handler,"ax",%progbits
85Default_Handler:
86Infinite_Loop:
87  b  Infinite_Loop
88  .size  Default_Handler, .-Default_Handler
89/******************************************************************************
90*
91* The minimal vector table for a Cortex M. Note that the proper constructs
92* must be placed on this to ensure that it ends up at physical address
93* 0x0000.0000.
94*
95*******************************************************************************/
96   .section  .isr_vector,"a",%progbits
97  .type  g_pfnVectors, %object
98  .size  g_pfnVectors, .-g_pfnVectors
99
100
101g_pfnVectors:
102  .word  _estack
103  .word  Reset_Handler
104
105  .word  NMI_Handler
106  .word  HardFault_Handler
107  .word  MemManage_Handler
108  .word  BusFault_Handler
109  .word  UsageFault_Handler
110  .word  0
111  .word  0
112  .word  0
113  .word  0
114  .word  SVC_Handler
115  .word  DebugMon_Handler
116  .word  0
117  .word  PendSV_Handler
118  .word  SysTick_Handler
119
120  /* External Interrupts */
121  .word     UART0_Handler
122  .word     UART1_Handler
123  .word     TIMR0_Handler
124  .word     TIMR1_Handler
125  .word     DMA_Handler
126  .word     SPI0_Handler
127  .word     PWM0_Handler
128  .word     WDT_Handler
129  .word     UART2_Handler
130  .word     PWM1_Handler
131  .word     ADC0_Handler
132  .word     BTIMR0_Handler
133  .word     HALL0_Handler
134  .word     PWM2_Handler
135  .word     PWMBRK_Handler
136  .word     I2C0_Handler
137  .word     CAN0_Handler
138  .word     SPI1_Handler
139  .word     RTC_Handler
140  .word     PWM3_Handler
141  .word     TIMR2_Handler
142  .word     UART3_Handler
143  .word     TIMR3_Handler
144  .word     ADC1_Handler
145  .word     BOD_Handler
146  .word     CORDIC_Handler
147  .word     BTIMR1_Handler
148  .word     PWM4_Handler
149  .word     HALL3_Handler
150  .word     BTIMR2_Handler
151  .word     I2C1_Handler
152  .word     BTIMR3_Handler
153  .word     ACMP_Handler
154  .word     XTALSTOP_Handler
155  .word     FSPI_Handler
156  .word     GPIOA_Handler
157  .word     GPIOB_Handler
158  .word     GPIOC_Handler
159  .word     GPIOD_Handler
160  .word     GPIOM_Handler
161  .word     GPION_Handler
162  .word     GPIOA0_Handler
163  .word     GPIOA1_Handler
164  .word     GPIOA5_Handler
165  .word     GPIOA6_Handler
166  .word     GPIOA10_Handler
167  .word     GPIOA11_Handler
168  .word     GPIOA12_Handler
169  .word     GPIOA13_Handler
170  .word     GPIOB0_Handler
171  .word     GPIOB1_Handler
172  .word     GPIOB2_Handler
173  .word     GPIOC0_Handler
174  .word     GPIOC1_Handler
175  .word     GPIOC2_Handler
176  .word     GPIOC3_Handler
177  .word     GPIOC4_Handler
178  .word     GPIOD3_Handler
179  .word     GPIOD4_Handler
180  .word     GPIOD5_Handler
181  .word     GPIOD6_Handler
182  .word     GPIOD7_Handler
183  .word     GPIOD8_Handler
184  .word     GPIOC9_Handler
185  .word     GPIOC10_Handler
186  .word     GPIOC11_Handler
187  .word     GPIOC12_Handler
188  .word     GPIOM0_Handler
189  .word     GPIOM1_Handler
190  .word     GPIOM2_Handler
191  .word     GPIOM3_Handler
192  .word     GPIOM4_Handler
193  .word     DIV_Handler
194  .word     LCD_Handler
195  .word     GPIOE_Handler
196  .word     JPEG_Handler
197  .word     SDIO_Handler
198  .word     USB_Handler
199  .word     CAN1_Handler
200  .word     TIMR4_Handler
201  .word     BTIMR4_Handler
202  .word     BTIMR5_Handler
203  .word     BTIMR6_Handler
204  .word     BTIMR7_Handler
205  .word     BTIMR8_Handler
206  .word     BTIMR9_Handler
207  .word     BTIMR10_Handler
208  .word     BTIMR11_Handler
209  .word     DMA2D_Handler
210  .word     QEI_Handler
211
212/*******************************************************************************
213*
214* Provide weak aliases for each Exception handler to the Default_Handler.
215* As they are weak aliases, any function with the same name will override
216* this definition.
217*
218*******************************************************************************/
219   .weak      NMI_Handler
220   .thumb_set NMI_Handler,Default_Handler
221
222   .weak      HardFault_Handler
223   .thumb_set HardFault_Handler,Default_Handler
224
225   .weak      MemManage_Handler
226   .thumb_set MemManage_Handler,Default_Handler
227
228   .weak      BusFault_Handler
229   .thumb_set BusFault_Handler,Default_Handler
230
231   .weak      UsageFault_Handler
232   .thumb_set UsageFault_Handler,Default_Handler
233
234   .weak      SVC_Handler
235   .thumb_set SVC_Handler,Default_Handler
236
237   .weak      DebugMon_Handler
238   .thumb_set DebugMon_Handler,Default_Handler
239
240   .weak      PendSV_Handler
241   .thumb_set PendSV_Handler,Default_Handler
242
243   .weak      SysTick_Handler
244   .thumb_set SysTick_Handler,Default_Handler
245
246   .weak      UART0_Handler
247   .thumb_set UART0_Handler,Default_Handler
248
249   .weak      UART1_Handler
250   .thumb_set UART1_Handler,Default_Handler
251
252   .weak      TIMR0_Handler
253   .thumb_set TIMR0_Handler,Default_Handler
254
255   .weak      TIMR1_Handler
256   .thumb_set TIMR1_Handler,Default_Handler
257
258   .weak      DMA_Handler
259   .thumb_set DMA_Handler,Default_Handler
260
261   .weak      SPI0_Handler
262   .thumb_set SPI0_Handler,Default_Handler
263
264   .weak      PWM0_Handler
265   .thumb_set PWM0_Handler,Default_Handler
266
267   .weak      WDT_Handler
268   .thumb_set WDT_Handler,Default_Handler
269
270   .weak      UART2_Handler
271   .thumb_set UART2_Handler,Default_Handler
272
273   .weak      PWM1_Handler
274   .thumb_set PWM1_Handler,Default_Handler
275
276   .weak      ADC0_Handler
277   .thumb_set ADC0_Handler,Default_Handler
278
279   .weak      BTIMR0_Handler
280   .thumb_set BTIMR0_Handler,Default_Handler
281
282   .weak      HALL0_Handler
283   .thumb_set HALL0_Handler,Default_Handler
284
285   .weak      PWM2_Handler
286   .thumb_set PWM2_Handler,Default_Handler
287
288   .weak      PWMBRK_Handler
289   .thumb_set PWMBRK_Handler,Default_Handler
290
291   .weak      I2C0_Handler
292   .thumb_set I2C0_Handler,Default_Handler
293
294   .weak      CAN0_Handler
295   .thumb_set CAN0_Handler,Default_Handler
296
297   .weak      SPI1_Handler
298   .thumb_set SPI1_Handler,Default_Handler
299
300   .weak      RTC_Handler
301   .thumb_set RTC_Handler,Default_Handler
302
303   .weak      PWM3_Handler
304   .thumb_set PWM3_Handler,Default_Handler
305
306   .weak      TIMR2_Handler
307   .thumb_set TIMR2_Handler,Default_Handler
308
309   .weak      UART3_Handler
310   .thumb_set UART3_Handler,Default_Handler
311
312   .weak      TIMR3_Handler
313   .thumb_set TIMR3_Handler,Default_Handler
314
315   .weak      ADC1_Handler
316   .thumb_set ADC1_Handler,Default_Handler
317
318   .weak      BOD_Handler
319   .thumb_set BOD_Handler,Default_Handler
320
321   .weak      CORDIC_Handler
322   .thumb_set CORDIC_Handler,Default_Handler
323
324   .weak      BTIMR1_Handler
325   .thumb_set BTIMR1_Handler,Default_Handler
326
327   .weak      PWM4_Handler
328   .thumb_set PWM4_Handler,Default_Handler
329
330   .weak      HALL3_Handler
331   .thumb_set HALL3_Handler,Default_Handler
332
333   .weak      BTIMR2_Handler
334   .thumb_set BTIMR2_Handler,Default_Handler
335
336   .weak      I2C1_Handler
337   .thumb_set I2C1_Handler,Default_Handler
338
339   .weak      BTIMR3_Handler
340   .thumb_set BTIMR3_Handler,Default_Handler
341
342   .weak      ACMP_Handler
343   .thumb_set ACMP_Handler,Default_Handler
344
345   .weak      XTALSTOP_Handler
346   .thumb_set XTALSTOP_Handler,Default_Handler
347
348   .weak      FSPI_Handler
349   .thumb_set FSPI_Handler,Default_Handler
350
351   .weak      GPIOA_Handler
352   .thumb_set GPIOA_Handler,Default_Handler
353
354   .weak      GPIOB_Handler
355   .thumb_set GPIOB_Handler,Default_Handler
356
357   .weak      GPIOC_Handler
358   .thumb_set GPIOC_Handler,Default_Handler
359
360   .weak      GPIOD_Handler
361   .thumb_set GPIOD_Handler,Default_Handler
362
363   .weak      GPIOM_Handler
364   .thumb_set GPIOM_Handler,Default_Handler
365
366   .weak      GPION_Handler
367   .thumb_set GPION_Handler,Default_Handler
368
369   .weak      GPIOA0_Handler
370   .thumb_set GPIOA0_Handler,Default_Handler
371
372   .weak      GPIOA1_Handler
373   .thumb_set GPIOA1_Handler,Default_Handler
374
375   .weak      GPIOA5_Handler
376   .thumb_set GPIOA5_Handler,Default_Handler
377
378   .weak      GPIOA6_Handler
379   .thumb_set GPIOA6_Handler,Default_Handler
380
381   .weak      GPIOA10_Handler
382   .thumb_set GPIOA10_Handler,Default_Handler
383
384   .weak      GPIOA11_Handler
385   .thumb_set GPIOA11_Handler,Default_Handler
386
387   .weak      GPIOA12_Handler
388   .thumb_set GPIOA12_Handler,Default_Handler
389
390   .weak      GPIOA13_Handler
391   .thumb_set GPIOA13_Handler,Default_Handler
392
393   .weak      GPIOB0_Handler
394   .thumb_set GPIOB0_Handler,Default_Handler
395
396   .weak      GPIOB1_Handler
397   .thumb_set GPIOB1_Handler,Default_Handler
398
399   .weak      GPIOB2_Handler
400   .thumb_set GPIOB2_Handler,Default_Handler
401
402   .weak      GPIOC0_Handler
403   .thumb_set GPIOC0_Handler,Default_Handler
404
405   .weak      GPIOC1_Handler
406   .thumb_set GPIOC1_Handler,Default_Handler
407
408   .weak      GPIOC2_Handler
409   .thumb_set GPIOC2_Handler,Default_Handler
410
411   .weak      GPIOC3_Handler
412   .thumb_set GPIOC3_Handler,Default_Handler
413
414   .weak      GPIOC4_Handler
415   .thumb_set GPIOC4_Handler,Default_Handler
416
417   .weak      GPIOD3_Handler
418   .thumb_set GPIOD3_Handler,Default_Handler
419
420   .weak      GPIOD4_Handler
421   .thumb_set GPIOD4_Handler,Default_Handler
422
423   .weak      GPIOD5_Handler
424   .thumb_set GPIOD5_Handler,Default_Handler
425
426   .weak      GPIOD6_Handler
427   .thumb_set GPIOD6_Handler,Default_Handler
428
429   .weak      GPIOD7_Handler
430   .thumb_set GPIOD7_Handler,Default_Handler
431
432   .weak      GPIOD8_Handler
433   .thumb_set GPIOD8_Handler,Default_Handler
434
435   .weak      GPIOC9_Handler
436   .thumb_set GPIOC9_Handler,Default_Handler
437
438   .weak      GPIOC10_Handler
439   .thumb_set GPIOC10_Handler,Default_Handler
440
441   .weak      GPIOC11_Handler
442   .thumb_set GPIOC11_Handler,Default_Handler
443
444   .weak      GPIOC12_Handler
445   .thumb_set GPIOC12_Handler,Default_Handler
446
447   .weak      GPIOM0_Handler
448   .thumb_set GPIOM0_Handler,Default_Handler
449
450   .weak      GPIOM1_Handler
451   .thumb_set GPIOM1_Handler,Default_Handler
452
453   .weak      GPIOM2_Handler
454   .thumb_set GPIOM2_Handler,Default_Handler
455
456   .weak      GPIOM3_Handler
457   .thumb_set GPIOM3_Handler,Default_Handler
458
459   .weak      GPIOM4_Handler
460   .thumb_set GPIOM4_Handler,Default_Handler
461
462   .weak      DIV_Handler
463   .thumb_set DIV_Handler,Default_Handler
464
465   .weak      LCD_Handler
466   .thumb_set LCD_Handler,Default_Handler
467
468   .weak      GPIOE_Handler
469   .thumb_set GPIOE_Handler,Default_Handler
470
471   .weak      JPEG_Handler
472   .thumb_set JPEG_Handler,Default_Handler
473
474   .weak      SDIO_Handler
475   .thumb_set SDIO_Handler,Default_Handler
476
477   .weak      USB_Handler
478   .thumb_set USB_Handler,Default_Handler
479
480   .weak      CAN1_Handler
481   .thumb_set CAN1_Handler,Default_Handler
482
483   .weak      TIMR4_Handler
484   .thumb_set TIMR4_Handler,Default_Handler
485
486   .weak      BTIMR4_Handler
487   .thumb_set BTIMR4_Handler,Default_Handler
488
489   .weak      BTIMR5_Handler
490   .thumb_set BTIMR5_Handler,Default_Handler
491
492   .weak      BTIMR6_Handler
493   .thumb_set BTIMR6_Handler,Default_Handler
494
495   .weak      BTIMR7_Handler
496   .thumb_set BTIMR7_Handler,Default_Handler
497
498   .weak      BTIMR8_Handler
499   .thumb_set BTIMR8_Handler,Default_Handler
500
501   .weak      BTIMR9_Handler
502   .thumb_set BTIMR9_Handler,Default_Handler
503
504   .weak      BTIMR10_Handler
505   .thumb_set BTIMR10_Handler,Default_Handler
506
507   .weak      BTIMR11_Handler
508   .thumb_set BTIMR11_Handler,Default_Handler
509
510   .weak      DMA2D_Handler
511   .thumb_set DMA2D_Handler,Default_Handler
512
513   .weak      QEI_Handler
514   .thumb_set QEI_Handler,Default_Handler
515