stkarm/src/startup.s

51 lines
846 B
ArmAsm

.data
godot_msg:
.string "Waiting for Godot"
.text
.balign 4
.global _start
_start:
/* Disable IRQ and FIQ */
cpsid if
/* Initialize stack pointers */
cps #0x13
ldr sp, =stack_svc
cps #0x1b
ldr sp, =stack_und
cps #0x17
ldr sp, =stack_abt
cps #0x12
ldr sp, =stack_irq
cps #0x11
ldr sp, =stack_fiq
cps #0x1f
ldr sp, =stack_sys
/* Enter SuperVisor Mode */
cps #0x13
/* Enable Vector Table BAR remapping (clears bit 13 of SCTLR) */
mrc p15, 0, r0, c1, c0, 0
and r0, #0xffffdfff
mcr p15, 0, r0, c1, c0, 0
/* Sets VBAR with custom vector table's address */
ldr r0, =vectab
mcr p15, 0, r0, c12, c0, 0
/* Enable IRQ and FIQ */
cpsie if
/* C-Main */
bl main
ldr r0, =godot_msg
bl printkl
/* Endless busy loop */
b .