sensible stack for mpu setup call

This commit is contained in:
Dave Murphy
2010-02-11 17:11:56 +00:00
parent 8528c8e453
commit 7fb45ebd2d

View File

@@ -17,9 +17,11 @@
_start: _start:
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
mov r0, #0x04000000 @ IME = 0; mov r0, #0x04000000 @ IME = 0;
str r0, [r0, #0x208] mov r1, #0
str r1, [r0, #0x208]
ldr r3,=__libnds_mpu_setup
mov sp, #0x0300000
ldr r3, =__libnds_mpu_setup
blx r3 blx r3
mov r0, #0x12 @ Switch to IRQ Mode mov r0, #0x12 @ Switch to IRQ Mode
@@ -39,7 +41,7 @@ _start:
ldr r4, =__itcm_end ldr r4, =__itcm_end
bl CopyMemCheck bl CopyMemCheck
ldr r1, =__vectors_lma @ Copy reserved vectors area (itcm section) from LMA to VMA ldr r1, =__vectors_lma @ Copy reserved vectors area (itcm section) from LMA to VMA
ldr r2, =__vectors_start ldr r2, =__vectors_start
ldr r4, =__vectors_end ldr r4, =__vectors_end
bl CopyMemCheck bl CopyMemCheck
@@ -70,7 +72,7 @@ _start:
str r2,[r1] str r2,[r1]
ldr r1, =fake_heap_end @ set heap end ldr r1, =fake_heap_end @ set heap end
sub r8,r8,#0xc000 sub r8, r8,#0xc000
str r8, [r1] str r8, [r1]
push {r0} push {r0}
@@ -86,7 +88,7 @@ _start:
ldr r0, [r0,#12] @ argc ldr r0, [r0,#12] @ argc
ldr r3, =main ldr r3, =main
ldr lr,=__libnds_exit ldr lr, =__libnds_exit
bx r3 @ jump to user code bx r3 @ jump to user code
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
@@ -102,7 +104,7 @@ checkARGV:
ldr r3, [r0] @ argv magic number ldr r3, [r0] @ argv magic number
ldr r2, =0x5f617267 @ '_arg' ldr r2, =0x5f617267 @ '_arg'
cmp r3, r2 cmp r3, r2
strne r1,[r0,#20] strne r1, [r0,#20]
bxne lr @ bail out if no magic bxne lr @ bail out if no magic
ldr r1, [r0, #4] @ command line address ldr r1, [r0, #4] @ command line address
@@ -179,7 +181,7 @@ CopyMem:
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
mov r0, #3 @ These commands are used in cases where mov r0, #3 @ These commands are used in cases where
add r3, r3, r0 @ the length is not a multiple of 4, add r3, r3, r0 @ the length is not a multiple of 4,
bics r3, r3, r0 @ even though it should be. bics r3, r3, r0 @ even though it should be.
bxeq lr @ Length is zero, so exit bxeq lr @ Length is zero, so exit
CIDLoop: CIDLoop:
ldmia r1!, {r0} ldmia r1!, {r0}