X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=rpikern;a=blobdiff_plain;f=src%2Fstartup.s;h=30e2a6676a7b12c327dc184f7a19a703b1546310;hp=ec157f666db98b0078ce4b386324be47c8f0fc1c;hb=4cdb0feb633bc6181644704cea8f18368b5bcfd1;hpb=e3851fa5fc01560a8ab799046b7cf0d2f35f18e8 diff --git a/src/startup.s b/src/startup.s index ec157f6..30e2a66 100644 --- a/src/startup.s +++ b/src/startup.s @@ -1,8 +1,42 @@ + .extern main + .section .startup + .code 32 + + ldr sp, =_stacktop + + mov r0, #1 + bl dbgled + @ clear bss ldr r0, =_bss_start ldr r1, =_bss_size + cmp r1, #0 + beq 1f @ 0-sized bss, skip clear mov r2, #0 0: str r2, [r0], #4 subs r1, #4 bne 0b +1: + bl main + + mov r0, #0 + bl dbgled + +halt: wfe + b halt + +dbgled: + ldr r3, =0x3f200000 @ gpio base + ldr r2, =0x9000 @ gpio 24 and 25 -> output + str r2, [r3, #8] @ store to GPFSEL2 + ldr r2, =0x01000000 @ bit 24 + teq r0, #0 + streq r2, [r3, #0x1c] @ GPSET0 + strne r2, [r3, #0x28] @ GPCLR0 + lsl r2, #1 + strne r2, [r3, #0x1c] @ GPSET0 + streq r2, [r3, #0x28] @ GPCLR0 + bx lr + +@ vi:set filetype=armasm: