1  .syntax unified
2  .cpu cortex-m3
3  .fpu softvfp
4  .thumb
5
6.global  g_pfnVectors
7.global  Default_Handler
8
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
21/**
22 * @brief  This is the code that gets called when the processor first
23 *          starts execution following a reset event. Only the absolutely
24 *          necessary set is performed, after which the application
25 *          supplied main() routine is called.
26 * @param  None
27 * @retval : None
28*/
29
30  .section  .text.Reset_Handler
31  .weak  Reset_Handler
32  .type  Reset_Handler, %function
33Reset_Handler:
34/* restore original stack pointer */
35  ldr   sp, =_estack       /* set stack pointer */
36
37/* Copy the data segment initializers from flash to SRAM */
38  movs  r1, #0
39  b  LoopCopyDataInit
40
41CopyDataInit:
42  ldr  r3, =_sidata
43  ldr  r3, [r3, r1]
44  str  r3, [r0, r1]
45  adds  r1, r1, #4
46
47LoopCopyDataInit:
48  ldr  r0, =_sdata
49  ldr  r3, =_edata
50  adds  r2, r0, r1
51  cmp  r2, r3
52  bcc  CopyDataInit
53  ldr  r2, =_sbss
54  b  LoopFillZerobss
55/* Zero fill the bss segment. */
56FillZerobss:
57  movs  r3, #0
58  str  r3, [r2], #4
59
60LoopFillZerobss:
61  ldr  r3, = _ebss
62  cmp  r2, r3
63  bcc  FillZerobss
64/* Call the application's entry point.*/
65  bl  main
66  bx  lr
67.size  Reset_Handler, .-Reset_Handler
68
69/**
70 * @brief  This is the code that gets called when the processor receives an
71 *         unexpected interrupt.  This simply enters an infinite loop, preserving
72 *         the system state for examination by a debugger.
73 *
74 * @param  None
75 * @retval : None
76*/
77    .section  .text.Default_Handler,"ax",%progbits
78Default_Handler:
79Infinite_Loop:
80  b  Infinite_Loop
81  .size  Default_Handler, .-Default_Handler
82
83/******************************************************************************
84*
85* The minimal vector table for a Cortex M3.  Note that the proper constructs
86* must be placed on this to ensure that it ends up at physical address
87* 0x0000.0000.
88*
89******************************************************************************/
90   .section  .isr_vector,"a",%progbits
91  .type  g_pfnVectors, %object
92  .size  g_pfnVectors, .-g_pfnVectors
93
94
95g_pfnVectors:
96  .word  _estack
97  .word  Reset_Handler
98  .word  Default_Handler                     //NMI_Handler
99  .word  HardFault_Handler
100  .word  Default_Handler                     //MemManage_Handler
101  .word  Default_Handler                     //BusFault_Handler
102  .word  Default_Handler                     //UsageFault_Handler
103  .word  0
104  .word  0
105  .word  0
106  .word  0
107  .word  Default_Handler                     //SVC_Handler
108  .word  Default_Handler                     //DebugMon_Handler
109  .word  0
110  .word  PendSV_Handler
111  .word  rt_hw_timer_handler
112  .word  Default_Handler                     // GPIO Port A
113  .word  Default_Handler                     // GPIO Port B
114  .word  Default_Handler                     // GPIO Port C
115  .word  Default_Handler                     // GPIO Port D
116  .word  Default_Handler                     // GPIO Port E
117  .word  rt_hw_uart_isr_1                      // UART0 Rx and Tx
118  .word  Default_Handler                     // UART1 Rx and Tx
119  .word  Default_Handler                     // SSI Rx and Tx
120  .word  Default_Handler                     // I2C Master and Slave
121  .word  Default_Handler                     // PWM Fault
122  .word  Default_Handler                     // PWM Generator 0
123  .word  Default_Handler                     // PWM Generator 1
124  .word  Default_Handler                     // PWM Generator 2
125  .word  Default_Handler                     // Quadrature Encoder
126  .word  Default_Handler                     // ADC Sequence 0
127  .word  Default_Handler                     // ADC Sequence 1
128  .word  Default_Handler                     // ADC Sequence 2
129  .word  Default_Handler                     // ADC Sequence 3
130  .word  Default_Handler                     // Watchdog timer
131  .word  Default_Handler                     // Timer 0 subtimer A
132  .word  Default_Handler                     // Timer 0 subtimer B
133  .word  Default_Handler                     // Timer 1 subtimer A
134  .word  Default_Handler                     // Timer 1 subtimer B
135  .word  Default_Handler                     // Timer 2 subtimer A
136  .word  Default_Handler                     // Timer 2 subtimer B
137  .word  Default_Handler                     // Analog Comparator 0
138  .word  Default_Handler                     // Analog Comparator 1
139  .word  Default_Handler                     // Analog Comparator 2
140  .word  Default_Handler                     // System Control (PLL, OSC,
141  .word  Default_Handler                     // FLASH Control
142  .word  Default_Handler                     // GPIO Port F
143  .word  Default_Handler                     // GPIO Port G
144  .word  Default_Handler                     // GPIO Port H
145  .word  Default_Handler                     // UART2 Rx and Tx
146  .word  Default_Handler                     // SSI1 Rx and Tx
147  .word  Default_Handler                     // Timer 3 subtimer A
148  .word  Default_Handler                     // Timer 3 subtimer B
149  .word  Default_Handler                     // I2C1 Master and Slave
150  .word  Default_Handler                     // Quadrature Encoder 1
151  .word  Default_Handler                     // CAN0
152  .word  Default_Handler                     // CAN1
153  .word  Default_Handler                     // CAN2
154  .word  luminaryif_isr                            // Ethernet
155  .word  Default_Handler                     // Hibernate
156  .word  Default_Handler                     // USB0
157  .word  Default_Handler                     // PWM Generator 3
158  .word  Default_Handler                     // uDMA Software Transfer
159  .word  Default_Handler                       // uDMA Error
160