diff options
author | Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> | 2005-01-22 15:14:24 +0000 |
---|---|---|
committer | Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> | 2005-01-22 15:14:24 +0000 |
commit | 93f917f5412cd7717a3fde149ca81aa1b9e3615e (patch) | |
tree | 6777f854cc8de238b994a14b334a7f0ff764a27d /firmware/crt0.S | |
parent | 70fba667086d02e4db8ee7dde9092e0e6f9a192e (diff) |
simplification and better integration of the gmini port
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5631 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/crt0.S')
-rw-r--r-- | firmware/crt0.S | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S index 0abc3bdbc6..a0ff26684e 100644 --- a/firmware/crt0.S +++ b/firmware/crt0.S @@ -21,17 +21,20 @@ //#define BOOTLOADER + .section .init.text + .global start +start: #if defined(ARCHOS_GMINI120) - .section .text - .global _start -_start: ;; disable all interrupts clrsr fe clrsr ie clrsr te - + ld a14, #0x3F0000 ;; copy data section from flash to ram. + ld r5, 0xA5 + ldb @[a14 + 6], r5 ; disable watchdog + ld a11, #(_datacopy) ; where the data section is in the flash ld a8, #(_datastart) ; destination @@ -56,9 +59,9 @@ _start: ld r2, #0 ld a8, #(_bssstart) ; destination - ld a9, #_bsssize - + ld a9, #_bsssize ld r6, e9 + cmp eq, r6, #0 brf .bss_init_loop cmp eq, r9, #0 @@ -76,12 +79,6 @@ _start: ld a15, _stackend - ;; rest of the setup in C - jsr _cpu_setup - - ;; enable IRQs (keep traps and fast interrupts low) - setsr ie - ;; go! jsr _main @@ -119,9 +116,6 @@ irq_handler: ret_irq #elif defined(IRIVER_H100) - .section .init.text - .global start -start: /* Platform: iRiver H1xx */ move.w #0x2700,%sr @@ -264,9 +258,6 @@ vectors: .long _stackend .long start #else - .section .init.text - .global start -start: /* Platform: Archos Jukebox * We begin with some tricks. If we have built our code to be loaded * via the standalone GDB stub, we will have out VBR at some other |