From 720cc4df1e13f1f36a3606eae9e4dae7a569f8f0 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Mon, 9 Sep 2002 15:02:42 +0000 Subject: New sh-win instructions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2241 a1c6a512-1295-4272-9138-f99709370657 --- www/sh-win/index.t | 347 +++++++++++------------------------------------------ 1 file changed, 72 insertions(+), 275 deletions(-) (limited to 'www/sh-win') diff --git a/www/sh-win/index.t b/www/sh-win/index.t index 9b387badb1..9b63d0ebe3 100644 --- a/www/sh-win/index.t +++ b/www/sh-win/index.t @@ -1,277 +1,74 @@ -#define _PAGE_ Setting up an SH-1 compiler for Windows -#include "head.t" -

-by Felix Arends, 1/8/2002 -
- -

-NOTE: THIS COMPILER DOES NOT YET WORK WITH WINDOWS XP!!! - -

-I have spent a long time figuring out how to compile SH1 code in windows (using -the sh-elf-gcc compiler) and when I finally compiled the first OS for my -Jukebox I decided to write a little tutorial explaining the setup process. - -

-The GNU-SH Tool Chain for Windows -

-

+#define _PAGE_ Setting up an SH-1 compiler for Windows #include "head.t" +

+ by Felix Arends, 1/8/2002 +
+

+

+ I have spent a long time figuring out how to compile SH1 code in windows (using + the sh-elf-gcc compiler) and when I finally compiled the first OS for my + Jukebox I decided to write a little tutorial explaining the setup process. +

+ The GNU-SH Tool Chain for Windows +

+

This is actually all you need to download. It includes the binutils, gcc and -newlib. Download the GNUSH Tool Chain for ELF format (13 MB). - -

-The GNUSH website can be found at -http://www.kpit.com/download/downloadgnush.htm (source code is also -available there). The new v0202 version now uses MinGW instead of Cygwin. - -

-Setting up the Compiler -

-

-Install the GNUSH Tool Chain (nothing you really have to care about during the -installation process). After that you should add some paths to your PATH system -environment variable. If you have Windows 95/98/Me you can do that by modifying -your autoexec.bat: - -

-Add the following line to your autoexec.bat: - -

- - - - - - -
-SET PATH=%PATH%;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Sh-elf\bin\;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Sh-elf\lib\gcc-lib\sh-elf\2.9-GNU-SH-v0101\;C:\Programs\kpit\GNU-SH v0101 -[ELF]\Other Utilities -
- -

-(Note: This is just one single line) - -

-Replace the beginning of the paths with the path-name you chose to installt the -tools in. Reboot. - -

-In Windows 2000 it is a bit different. You can find the PATH-environment -variable if you right-click the "My Computer" icon on your desktop and choose -"Properties" in the popup-menu. Go to the "Advanced" tab and click -"Environment-Variables": - -

- - -

-(Note: There is also a PATH-variable in the "System variables" list, it does -not matter which one you edit) - -

-To the value the PATH-variable already has, add: - -

- - - - -
-;C:\Programs\kpit\GNU-SH v0101 [ELF]\Sh-elf\bin\;C:\Programs\kpit\GNU-SH -v0101 [ELF]\Sh-elf\lib\gcc-lib\sh-elf\2.9-GNU-SH-v0101\;C:\Programs\kpit\GNU-SH -v0101 [ELF]\Other Utilities -
- -

-Replace the program path with the path you chose for the program. You do not -have to reboot. - -

-An "empty" System -

-

-First of all, I'll explain what to do to compile an "empty" system. It just -initializes and calls the main function, but does not do anything -else. You can add some code to the main function and simply recompile. -It is actually like this: You don't have to care about any of those files, -because you won't have to change much of them (except the main.cpp of -course!!). - -

-main.cpp: -
-
- - - - -
-

-int __main(void){} -
-
-int main(void) -
-{ -
-    // add code here -
-} -
-
-extern const -void stack(void); -
-
-const void* vectors[] -__attribute__ ((section (".vectors"))) = -
-{ -
-    main, /* Power-on reset */ -
-    stack, /* Power-on reset (stack pointer) -*/ -
-    main, /* Manual reset */ -
-    stack /* Manual reset (stack pointer) */ -
-}; -
-
- -

- -

-We need a start-up assembler code: - -

-start.asm -
-
- - - - -
- -
! note: sh-1 has a "delay cycle" after every branch where you can
-! execute another instruction "for free".
-
-.file"start.asm"
-.section.text.start
-.extern_main
-.extern _vectors
-.extern _stack
-.global _start
-.align  2
-
-_start:
-mov.l1f, r1
-mov.l3f, r3
-mov.l2f, r15
-jmp@r3
-ldcr1, vbr
-nop
-
-1:.long_vectors
-2:.long_stack
-3:.long_main
-.type_start,@function
-
-
- -

-(I took this code from Björn's LCDv2 source) - -

-Then we need a linker configuration file: - -

-linker.cfg -
- - - - -
-

- -

ENTRY(_start)
-OUTPUT_FORMAT(elf32-sh)
-SECTIONS
-{
-    .vectors 0x09000000 :
-    {
-        *(.vectors);
-        . = ALIGN(0x200);
-        *(.text.start)
-        *(.text)
-        *(.rodata)
-    }
-
-    .bss :
-    {
-       _stack = . + 0x1000;
-    }
-
-    .pad 0x0900C800 :
-    {
-        LONG(0);
-    }
-  }
- -
- -

-(This code comes from Börn's LCDv2 as well) - -

-Last but not least, we need a batch file to link all this and output a usable -.mod file (you don't really need a batch file if you want to enter all the -commands over and over angain :]) - -

-make.bat -
- - - - -
-

- -

SET INCLUDES=
-SET SOURCEFILES=main.c
-SET OBJECTS=main.o start.o
-
-sh-elf-as start.asm -o start.o -L -a
-sh-elf-gcc -O2 -m1 -o main.o -c -nostdlib %INCLUDES% %SOURCEFILES%
-sh-elf-ld -o main.out %OBJECTS% -Tlinker.cfg
-padit main.out
-scramble main.out archos.mod
-
-PAUSE
- -
- -

-And that's it! I have prepared all those files in a .zip archive for you so you -don't have to copy'n'paste that much :). I have also prepared a package with -the LCDv2 code Björn wrote (ready to compile with Windows). - -

-empty.zip -
-LCDv2Win.zip - -

-I hope this tutorial helped you to compile an Archos firmware with windows. If -you have any questions, comments or corrections, please mail to -edx@codeforce.d2g.com - +newlib. Download the GNUSH Tool Chain for ELF format (35 MB). +

+ The GNUSH website can be found at + http://www.kpit.com/download/downloadgnushv0203.htm (source code is + also available there). Get the "GNUSH v0203 Tool Chain for ELF format". +

+ Setting up the Compiler +

+

+

Install the GNUSH Tool Chain (nothing you really have to care about during the + installation process).

+

+

Compiling the latest Rockbox Source +

+

Use CVS to download the latest source code of Rockbox (the firmware and apps + modules). In addition, you need to copy a win32 compilation of scramble.exe + into the apps dir. The pre-compiled scramble.exe can be downloaded here. + From your start menu, open the "SH-ELF tool chain" batch file inside the GNU-SH + v0203 program folder. You should end up seeing a command prompt. Go to the apps + directory and type:

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandDescription
make -f win32.mak
+ make -f win32.mak RECORDER = 1
build for recorder target
make -f win32.mak PLAYERbuild for player target
make -f win32.mak PLAYER_OLDbuild for old player target
make -f win32.mak RECORDER=1 DISABLE_GAMES=1build for recorder target, disable games
make -f win32.mak RECORDER=1 PROPFONTS=1build for recorder target, enable propfonts
make -f win32.mak RECORDER=1 PROPFONTS=1 DISABLE_GAMES = + 1 build for recorder target, disable games, use propfonts
+

+

+ I hope this tutorial helped you to compile an Archos firmware with windows. If + you have any questions, comments or corrections, please mail to + edx@go.cc +

#include "foot.t" - -- cgit v1.2.3