interrupts, timers, under construction
[rpikern] / src / startup.s
1         .extern main
2
3         .section .startup
4         .code 32
5
6         .global startup
7 startup:
8         @ stop all but one of the cores
9         mrc p15, 0, r0, c0, c0, 5
10         ands r0, r0, #0xff
11         bne exit
12
13         @ setup stack
14         ldr sp, =_stacktop
15
16         @ clear bss
17         ldr r0, =_bss_start
18         ldr r1, =_bss_size
19         cmp r1, #0
20         beq 1f          @ 0-sized bss, skip clear
21         mov r2, #0
22 0:      str r2, [r0], #4
23         subs r1, #4
24         bne 0b
25 1:
26         blx main
27
28         .global exit
29 exit:   wfe
30         b exit
31
32 @ vi:set filetype=armasm: