From 2d461156bd6173b1062642f1c196df42bfdb6ff8 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Thu, 1 Aug 2002 08:12:48 +0000 Subject: Copies code to internal ram at startup git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1498 a1c6a512-1295-4272-9138-f99709370657 --- firmware/crt0.S | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'firmware') diff --git a/firmware/crt0.S b/firmware/crt0.S index 78b26b77ea..99aab83867 100644 --- a/firmware/crt0.S +++ b/firmware/crt0.S @@ -95,8 +95,21 @@ start: start_l: mov.l r2,@r0 add #4,r0 - cmp/ge r0,r1 - bt start_l + cmp/ge r1,r0 + bf start_l + nop + + /* copy the .iram section */ + mov.l iramcopy_k,r0 + mov.l iram_k,r1 + mov.l iramend_k,r2 +copy_l: + mov.l @r0,r3 + mov.l r3,@r1 + add #4,r0 + add #4,r1 + cmp/ge r2,r1 + bf copy_l nop /* Munge the main thread stack */ @@ -106,8 +119,8 @@ start_l: munge_loop: mov.l r0,@r1 add #4,r1 - cmp/ge r1,r2 - bt munge_loop + cmp/ge r2,r1 + bf munge_loop nop mov #0,r0 @@ -131,6 +144,12 @@ edata_k: .long _edata end_k: .long _end +iramcopy_k: + .long _iramcopy +iram_k: + .long _iramstart +iramend_k: + .long _iramend main_k: .long _main vbr_k: -- cgit v1.2.3