61 lines
1.4 KiB
ArmAsm
61 lines
1.4 KiB
ArmAsm
.syntax unified
|
|
.cpu cortex-m4
|
|
|
|
.section .text
|
|
.global _init
|
|
_init:
|
|
ldr r0, =0x1003E000
|
|
mov sp, r0
|
|
|
|
ldr r0, =_vector_table
|
|
ldr r1, =0xE000ED08
|
|
str r0, [r1]
|
|
|
|
push.w {r2-r9,r11,lr}
|
|
bl main
|
|
pop.w {r2-r9,r11,lr}
|
|
1: b 1b
|
|
|
|
.section .vectors
|
|
_vector_table:
|
|
.word _stack_top
|
|
.word _init
|
|
.word NMI_Handler
|
|
.word HardFault_Handler
|
|
.word MemManage_Handler
|
|
.word BusFault_Handler
|
|
.word UsageFault_Handler
|
|
.word 0 /* Reserved */
|
|
.word 0 /* Reserved */
|
|
.word 0 /* Reserved */
|
|
.word 0 /* Reserved */
|
|
.word SVC_Handler
|
|
.word DebugMon_Handler
|
|
.word 0 /* Reserved */
|
|
.word PendSV_Handler
|
|
.word SysTick_Handler
|
|
|
|
/* default */
|
|
.weak NMI_Handler
|
|
.weak HardFault_Handler
|
|
.weak MemManage_Handler
|
|
.weak BusFault_Handler
|
|
.weak UsageFault_Handler
|
|
.weak SVC_Handler
|
|
.weak DebugMon_Handler
|
|
.weak PendSV_Handler
|
|
.weak SysTick_Handler
|
|
|
|
.thumb_set NMI_Handler, Default_Handler
|
|
.thumb_set HardFault_Handler, Default_Handler
|
|
.thumb_set MemManage_Handler, Default_Handler
|
|
.thumb_set BusFault_Handler, Default_Handler
|
|
.thumb_set UsageFault_Handler, Default_Handler
|
|
.thumb_set SVC_Handler, Default_Handler
|
|
.thumb_set DebugMon_Handler, Default_Handler
|
|
.thumb_set PendSV_Handler, Default_Handler
|
|
.thumb_set SysTick_Handler, Default_Handler
|
|
|
|
Default_Handler:
|
|
b Default_Handler
|