diff options
author | Thom Johansen <thomj@rockbox.org> | 2005-11-13 23:47:26 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2005-11-13 23:47:26 +0000 |
commit | e3095ee3b8bc84d4d93796869d694455b7911b2f (patch) | |
tree | a7ff616a419acb4a3b487bf57e0b39d03e4851bc | |
parent | e22f9c49c83a211ef8fda6e132c64d84284cfb15 (diff) | |
download | rockbox-e3095ee3b8bc84d4d93796869d694455b7911b2f.tar.gz rockbox-e3095ee3b8bc84d4d93796869d694455b7911b2f.zip |
iPod fixes. Stack starts at stackend. Munge stack with 0xdeadbeef.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7851 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/crt0.S | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S index 9ef597fad6..cba7221471 100644 --- a/firmware/crt0.S +++ b/firmware/crt0.S | |||
@@ -75,9 +75,16 @@ cop_wake_start: | |||
75 | ldr pc, [r0] | 75 | ldr pc, [r0] |
76 | 76 | ||
77 | 1: | 77 | 1: |
78 | /* setup some stack */ | 78 | /* setup some stack and munge it with 0xdeadbeef */ |
79 | ldr sp, = _stackbegin | 79 | ldr sp, =_stackend |
80 | 80 | mov r3, sp | |
81 | ldr r2, =_stackbegin | ||
82 | ldr r4, =0xdeadbeef | ||
83 | .mungeloop: | ||
84 | str r4, [r2], #4 | ||
85 | cmp r2, r3 | ||
86 | bne .mungeloop | ||
87 | |||
81 | /* get the high part of our execute address */ | 88 | /* get the high part of our execute address */ |
82 | ldr r2, =0xffffff00 | 89 | ldr r2, =0xffffff00 |
83 | and r4, pc, r2 | 90 | and r4, pc, r2 |