From 13c42b7010b9cafc92424d4c025f21f3b5730678 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Tue, 26 Apr 2005 00:39:22 +0000 Subject: [PATCH] *** empty log message *** --- dka-crtls/ds_arm7.ld | 5 ++- dka-crtls/ds_arm7_crt0.s | 86 +++++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 43 deletions(-) diff --git a/dka-crtls/ds_arm7.ld b/dka-crtls/ds_arm7.ld index e537795..0ba5a99 100644 --- a/dka-crtls/ds_arm7.ld +++ b/dka-crtls/ds_arm7.ld @@ -8,9 +8,10 @@ MEMORY { iwram : ORIGIN = 0x03800000, LENGTH = 64K ewram : ORIGIN = 0x02040000, LENGTH = 4M } -__iwram_start = 0x03800000; +__iwram_start = 0x03800000; +__iwram_end = 0x03810000; -__sp_irq = 0x380000 - 0x60; +__sp_irq = __iwram_end - 0x60; __sp_usr = __sp_irq - 0x100; SECTIONS diff --git a/dka-crtls/ds_arm7_crt0.s b/dka-crtls/ds_arm7_crt0.s index e26370c..5159c8b 100644 --- a/dka-crtls/ds_arm7_crt0.s +++ b/dka-crtls/ds_arm7_crt0.s @@ -7,36 +7,36 @@ .arm _start: - mov r0, #0x04000000 @ IME = 0; - add r0, r0, #0x208 - strh r0, [r0] + mov r0, #0x04000000 @ IME = 0; + add r0, r0, #0x208 + strh r0, [r0] - mov r0, #0x12 @ Switch to IRQ Mode - msr cpsr, r0 - ldr sp, =__sp_irq @ Set IRQ stack + mov r0, #0x12 @ Switch to IRQ Mode + msr cpsr, r0 + ldr sp, =__sp_irq @ Set IRQ stack - mov r0, #0x1F @ Switch to System Mode - msr cpsr, r0 - ldr sp, =__sp_usr @ Set user stack + mov r0, #0x1F @ Switch to System Mode + msr cpsr, r0 + ldr sp, =__sp_usr @ Set user stack - ldr r0, =__bss_start @ Clear BSS section to 0x00 - ldr r1, =__bss_end - sub r1, r1, r0 - bl ClearMem + ldr r0, =__bss_start @ Clear BSS section to 0x00 + ldr r1, =__bss_end + sub r1, r1, r0 + bl ClearMem CIW0Skip: - ldr r3, =_init @ global constructors - bl _call_via_r3 + ldr r3, =_init @ global constructors + bl _call_via_r3 - mov r0, #0 @ int argc - mov r1, #0 @ char *argv[] - ldr r3, =main - bl _call_via_r3 @ jump to user code + mov r0, #0 @ int argc + mov r1, #0 @ char *argv[] + ldr r3, =main + bl _call_via_r3 @ jump to user code - @ If the user ever returns, return to flash cartridge - mov r0, #0x08000000 - bx r0 + @ If the user ever returns, return to flash cartridge + mov r0, #0x08000000 + bx r0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@ -46,17 +46,19 @@ CIW0Skip: @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -ClearMem: mov r2, #3 @ Round down to nearest word boundary - add r1, r1, r2 @ Shouldn't be needed - bics r1, r1, r2 @ Clear 2 LSB (and set Z) - bxeq lr @ Quit if copy size is 0 +ClearMem: + mov r2, #3 @ Round down to nearest word boundary + add r1, r1, r2 @ Shouldn't be needed + bics r1, r1, r2 @ Clear 2 LSB (and set Z) + bxeq lr @ Quit if copy size is 0 - mov r2, #0 -ClrLoop: stmia r0!, {r2} - subs r1, r1, #4 - bne ClrLoop + mov r2, #0 +ClrLoop: + stmia r0!, {r2} + subs r1, r1, #4 + bne ClrLoop - bx lr + bx lr @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@ -68,7 +70,7 @@ ClrLoop: stmia r0!, {r2} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ CopyMemCheck: - sub r3, r4, r2 @ Is there any data to copy? + sub r3, r4, r2 @ Is there any data to copy? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@ -79,17 +81,19 @@ CopyMemCheck: @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -CopyMem: mov r0, #3 @ These commands are used in cases where - add r3, r3, r0 @ the length is not a multiple of 4, - bics r3, r3, r0 @ even though it should be. - bxeq lr @ Length is zero, so exit +CopyMem: + mov r0, #3 @ These commands are used in cases where + add r3, r3, r0 @ the length is not a multiple of 4, + bics r3, r3, r0 @ even though it should be. + bxeq lr @ Length is zero, so exit -CIDLoop: ldmia r1!, {r0} - stmia r2!, {r0} - subs r3, r3, #4 - bne CIDLoop +CIDLoop: + ldmia r1!, {r0} + stmia r2!, {r0} + subs r3, r3, #4 + bne CIDLoop - bx lr + bx lr @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@