Find a file
Aidan MacDonald 3ed9fb3115 arm: add initial ARM Cortex-M support
M-profile cores manage interrupts differently from classic cores
and lack the FIQ. Split the interrupt management parts out into
separate headers but keep the endian swapping routines (which are
not profile-dependent) in the common system-arm header.

The initial part of the vector table is common to all Cortex-M
CPUs and is intended to be included by the target linker script,
with the vendor-specific part of the vector table appended to it.

Change-Id: Ib2ad5b9dc41db27940e39033cfef4308923db66d
2025-04-18 13:19:42 -04:00
android build: instead of 'ifdef NODEPS' use 'ifneq ($NODEPS,)' 2025-03-29 14:33:20 -04:00
apps arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
backdrops add cabbie bitmap for 128 x 96 greyscale screen 2025-03-27 22:25:56 -04:00
bootloader bootloader: Fix red on hosted bootloaders 2025-04-17 08:31:33 -04:00
debian Prepare new maemo release 2013-03-10 12:12:38 +01:00
docs Minor mechanical correction to the Russian translation 2025-04-03 11:03:26 -04:00
firmware arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
fonts FS#9906: Correct SWIDTH, DWIDTH for ETHIOPIC SYLLABLE NO in 15-Adobe-Helvetica (Maurus Cuelenaere) 2025-03-25 21:25:21 -04:00
gdb Nuke the never-functional iriver ifp-7xx port 2021-04-26 07:42:58 -04:00
icons Revert Non-Alpha Updated 8x8 tango icons 2020-10-25 16:21:58 +00:00
lib arm: implement get_sp for Cortex-M 2025-04-18 12:47:03 -04:00
manual manual: add 'manual-7zip' build target for 7zipped HTML manual. 2025-04-18 11:24:40 -04:00
packaging Prepare unofficial pandora release 2013-03-10 14:09:30 +01:00
tools manual: add 'manual-7zip' build target for 7zipped HTML manual. 2025-04-18 11:24:40 -04:00
uisimulator Remove BATTERY_TYPES 2025-03-11 02:26:38 -04:00
utils rbutil: http:// -> https:// for all displayed Rockbox URLs. 2025-04-05 13:58:56 -04:00
wps [Feature] skinengine subline timeout hide line for n seconds 2024-12-07 23:02:22 -05:00
.gitattributes Add a gitattributes file for the migration. 2011-12-01 14:14:59 +00:00
.gitignore time-sync: Fix arguments order in linker command 2025-01-16 16:05:18 -05:00
.gitreview misc: Add a .gitreview file for better gerrit integration 2021-06-24 07:22:19 -04:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xJf rockbox.tar.xz

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have mips/m68k/arm-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be generated using the rockboxdev.sh script in the /tools/ folder of the
   source.

   $ which arm-elf-eabi-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fuzeplus
   $ cd build-fuzeplus
   $ ../tools/configure

   $ mkdir build-xduoox3
   $ cd build-xduoox3
   $ ../tools/configure

Questions anyone? Ask on the mailing list or on IRC. We'll be happy to help you!