30 lines
549 B
ArmAsm
30 lines
549 B
ArmAsm
.macro FILL_ZERO_32_BYTE_ALIGNED
|
|
cmp r1, r10
|
|
beq _fill_break.\@
|
|
.irp i, 2, 3, 4, 5, 6, 7, 8, 9
|
|
mov r\i, #0
|
|
.endr
|
|
_fill_loop.\@:
|
|
stmia r1!, {r2 - r9}
|
|
cmp r1, r10
|
|
blt _fill_loop.\@
|
|
_fill_break.\@:
|
|
.endm
|
|
|
|
.section .text.start
|
|
.global _start
|
|
_start:
|
|
b _reset
|
|
_reset:
|
|
_link_bss:
|
|
/*
|
|
ldr r1, =__bss_link_start
|
|
ldr r10, =__bss_link_end
|
|
FILL_ZERO_32_BYTE_ALIGNED
|
|
*/
|
|
|
|
/* set stack pointer */
|
|
ldr sp,=__ram_end
|
|
|
|
bl main
|