Files
wch-uf2-example/startup.S
T
2024-04-12 18:16:22 +01:00

39 lines
590 B
ArmAsm

.section .vector,"ax",@progbits
.align 1
.global _start
_start:
// Set up global pointer
.option push
.option norelax
la gp, __global_pointer$
.option pop
// Load data section from flash to RAM
la a0, _data_lma
la a1, _data_vma
la a2, _edata
bgeu a1, a2, 2f
1:
lw t0, (a0)
sw t0, (a1)
addi a0, a0, 4
addi a1, a1, 4
bltu a1, a2, 1b
2:
// Clear bss section
la a0, _sbss
la a1, _ebss
bgeu a0, a1, 2f
1:
sw zero, (a0)
addi a0, a0, 4
bltu a0, a1, 1b
2:
// Invoke main
la t0, main
csrw mepc, t0
mret