summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/test/kernel/Makefile9
-rw-r--r--firmware/test/kernel/app.lds9
-rw-r--r--firmware/test/kernel/crt0.S49
-rw-r--r--firmware/test/kernel/main.c10
4 files changed, 14 insertions, 63 deletions
diff --git a/firmware/test/kernel/Makefile b/firmware/test/kernel/Makefile
index 0f9f284a10..cec39b1d49 100644
--- a/firmware/test/kernel/Makefile
+++ b/firmware/test/kernel/Makefile
@@ -6,10 +6,15 @@ OC = sh-elf-objcopy
6 6
7INCLUDES=-I../../ -I../../drivers 7INCLUDES=-I../../ -I../../drivers
8 8
9CFLAGS = -g -O -Wall -m1 -save-temps -nostdlib -Wstrict-prototypes -fomit-frame-pointer -fschedule-insns -fno-builtin $(INCLUDES) 9# Pick a target to build for
10#TARGET = -DARCHOS_PLAYER=1
11TARGET = -DARCHOS_PLAYER_OLD=1
12#TARGET = -DARCHOS_RECORDER=1
13
14CFLAGS = -g -O -Wall -m1 -save-temps -nostdlib -Wstrict-prototypes -fomit-frame-pointer -fschedule-insns -fno-builtin $(INCLUDES) $(TARGET)
10AFLAGS += -small -relax 15AFLAGS += -small -relax
11 16
12OBJS= crt0.o main.o ../../thread.o ../../debug.o 17OBJS= ../../crt0.o ../../drivers/lcd.o ../../system.o main.o ../../thread.o ../../debug.o
13 18
14%.o: %.S 19%.o: %.S
15 $(CC) -o $@ $(CFLAGS) $(INCLUDES) $(DEFS) -c $< 20 $(CC) -o $@ $(CFLAGS) $(INCLUDES) $(DEFS) -c $<
diff --git a/firmware/test/kernel/app.lds b/firmware/test/kernel/app.lds
index 8a31ee7a13..2aa374f8c1 100644
--- a/firmware/test/kernel/app.lds
+++ b/firmware/test/kernel/app.lds
@@ -6,8 +6,7 @@ SECTIONS
6 { 6 {
7 *(.vectors) 7 *(.vectors)
8 . = ALIGN(0x200); 8 . = ALIGN(0x200);
9 crt0.o(.text) 9 *(.init.text)
10 *(.rodata)
11 } 10 }
12 11
13 .text : 12 .text :
@@ -17,9 +16,15 @@ SECTIONS
17 16
18 .data : 17 .data :
19 { 18 {
19 *(.rodata)
20 *(.data) 20 *(.data)
21 } 21 }
22 22
23 .rodata :
24 {
25 *(.rodata)
26 }
27
23 .bss : 28 .bss :
24 { 29 {
25 *(.bss) 30 *(.bss)
diff --git a/firmware/test/kernel/crt0.S b/firmware/test/kernel/crt0.S
deleted file mode 100644
index 5f0ef2d64e..0000000000
--- a/firmware/test/kernel/crt0.S
+++ /dev/null
@@ -1,49 +0,0 @@
1 .section .text
2 .global start
3start:
4 mov.l stack_k,r15
5
6 ! zero out bss
7 mov.l edata_k,r0
8 mov.l end_k,r1
9 mov #0,r2
10start_l:
11 mov.l r2,@r0
12 add #4,r0
13 cmp/ge r0,r1
14 bt start_l
15 nop
16
17#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY)
18 mov.l set_fpscr_k, r1
19 jsr @r1
20 mov #0,r4
21 lds r3,fpscr
22#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) */
23
24 ! call the mainline
25 mov.l main_k,r0
26 jsr @r0
27 nop
28.hoo:
29 bra .hoo
30
31 .align 2
32#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
33set_fpscr_k:
34 .long ___set_fpscr
35#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(SH4_SINGLE_ONLY) */
36stack_k:
37 .long _stack
38edata_k:
39 .long _edata
40end_k:
41 .long _end
42main_k:
43 .long _main
44
45#ifdef __ELF__
46 .section .stack,"aw"
47#else
48 .section .stack
49#endif
diff --git a/firmware/test/kernel/main.c b/firmware/test/kernel/main.c
index 7e0bd3e3f8..5ac24a7971 100644
--- a/firmware/test/kernel/main.c
+++ b/firmware/test/kernel/main.c
@@ -70,13 +70,3 @@ void t2(void)
70 switch_thread(); 70 switch_thread();
71 } 71 }
72} 72}
73
74extern const void stack(void);
75
76const void* vectors[] __attribute__ ((section (".vectors"))) =
77{
78 main, /* Power-on reset */
79 stack, /* Power-on reset (stack pointer) */
80 main, /* Manual reset */
81 stack /* Manual reset (stack pointer) */
82};