Rockbox
Find a file
Aidan MacDonald 00129ac872 Fix battery_bench bug by using a static buffer for stack
Since battery_bench is a TSR (terminate & stay resident) plugin it
cannot allocate the plugin buffer -- various parts of the Rockbox
core make use of it as temporary storage space. The buffer was used
for stack space so this generated false 'Stkov' panics when one of
those in-core users overwrote the buffer.

The default stack size of 1kb is a bit small, so use 4x the default
size to be on the safe side.

This also fixes a minor issue where trying to view OS stack usage
while battery_bench was running would cause audio dropouts, due to
scanning the possibly huge stack with IRQs disabled.

Change-Id: I2e6b76f9946db9090c1af61f7aa0a0dac0698c20
2021-07-22 13:50:26 +00:00
android android: Fix configure script for "newer" versions of the NDK 2020-04-13 16:51:58 +02:00
apps Fix battery_bench bug by using a static buffer for stack 2021-07-22 13:50:26 +00:00
backdrops New port: Shanling Q1 native 2021-07-13 22:01:33 +01:00
bootloader New Port: Eros Q Native 2021-07-18 12:14:35 +00:00
debian Prepare new maemo release 2013-03-10 12:12:38 +01:00
docs New port: Shanling Q1 native 2021-07-13 22:01:33 +01:00
firmware timefuncs.c valid_time() should return false if tm == NULL and not try to deref 2021-07-20 23:25:31 +00:00
fonts
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 misc: Fix up a few warnings uncovered by LTO 2021-07-15 18:37:42 +00:00
manual FS#13297: M3K Autolock allows one action before disabling touchpad 2021-06-12 21:11:28 +00:00
packaging Prepare unofficial pandora release 2013-03-10 14:09:30 +01:00
rbutil jztool: add support for Shanling Q1 and Eros Q 2021-07-20 14:56:58 +00:00
tools New Port: Eros Q Native 2021-07-18 12:14:35 +00:00
uisimulator sim: change Eros Q native bitmap to a symlink 2021-07-18 14:15:25 +01:00
utils x1000: more CPM register definitions 2021-07-08 16:01:38 +00:00
wps New port: Shanling Q1 native 2021-07-13 22:01:33 +01:00
.gitattributes
.gitignore jztool: New utility for installing a bootloader on FiiO M3K 2021-04-17 20:23:19 +00: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.bz2

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!