chore: ld
This commit is contained in:
60
src/boot.s
Normal file
60
src/boot.s
Normal file
@@ -0,0 +1,60 @@
|
||||
.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
|
||||
Reference in New Issue
Block a user