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