Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .align 4
- .global _start_
- .section .text.start, "x"
- .arm
- _start_:
- ldr r0, =0x04000200
- mov r1, #0
- str r1, [r0, #8] //disable ime
- str r1, [r0, #0x10] //disable all interrupts
- str r1, [r0, #0x18]
- mov r1, #0xFFFFFFFF
- str r1, [r0, #0x14] //clear pending irqs
- str r1, [r0, #0x1C]
- bl bss_loop
- ldr sp, =0x03808000 //setup stack; stack grows downwards, so start it here.
- bl main //start executing C code
- b .
- bss_loop:
- ldr r0, =__bss_start
- ldr r1, =__bss_end
- mov r2, #0
- clear_bss:
- cmp r0, r1 //check if we're at the end
- bxeq lr //if we're at the end, return
- str r2, [r0], #4 //clear the word
- b clear_bss
- .pool
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement