rockbox/gdb
Rafaël Carré 5d236b2bfd Generate C file / header for svn version string
It's now easier to force rebuild of files depending on the svn revision

version.c/version.h are generated once with new tools/genversion.sh
Changes in the VCS are still not auto detected, so you'll have to remove
builddir/version.* if you want to change the string in your binaries

APPSVERSION is now called RBVERSION and is defined in the generated
header instead of being defined by the Makefiles
appsversion is now called rbversion (the plugin api number didn't change
since old modules are still binary compatible)

Change some bootloaders to use knwon-at-buildtime RBVERSION instead of
"%s" + rbversion

You'll need to run make clean to regenerate dependencies after the
removal of apps/version.h

To build binaries with a different version string, hand-edit
tools/version.sh or tools/genversion.sh (which calls the former)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26320 a1c6a512-1295-4272-9138-f99709370657
2010-05-27 09:41:46 +00:00
..
arm-stub.c
linker.cfg
Makefile Generate C file / header for svn version string 2010-05-27 09:41:46 +00:00
README
setjmp.S Updated our source code header to explicitly mention that we are GPL v2 or 2008-06-28 18:10:04 +00:00
sh-stub.c
SOURCES
start.s

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

 Copyright (C) 2002 by Linus Nielsen Feltzing

--------------------------------------------------------------------

Debugging the Archos Jukebox
----------------------------

To debug using the serial port on the Jukebox, you need to do the following:

1) Connect the serial port to the PC. This is best done with the "serial
   port mod" described on the home page, along with a serial port converter
   for the 3V signals from the Jukebox.

2) Build or download a GDB SH1 cross debugger

3) Compile the GDB stub from the CVS "gdb" archive
   For Player models, just type:
   # make

   For Recorder, type
   #make RECORDER=1

4) Copy the newly built ARCHOS.MOD to the Jukebox.

5) Start the Jukebox and fire up the GDB with the elf file you want to debug
   as an argument along with the baud rate:

   For Player:
   # sh-elf-gdb -b 38400 test.elf

   For Recorder:
   # sh-elf-gdb -b 115200 test.elf

6) In GDB, type:

   (gdb) target remote /dev/ttyS0
   
   /dev/ttyS0 is the serial port you want to use. I guess Windows users
   would type COM1 or something like that.

   GDB should answer with a message like:

   Remote debugging using /dev/ttyS0
   0x090014b6 in ?? ()
   (gdb)

7) Load the code from the elf file you specified on the command line:

   (gdb) load

   GDB should answer like this:

   Loading section .text, size 0x6b00 lma 0x9018000
   Loading section .data, size 0x738 lma 0x901eb00
   Start address 0x9018290, load size 29240
   Transfer rate: 11696 bits/sec, 102 bytes/write.
   (gdb)

8) You're set. Now try to set a breakpoint and run:

   (gdb) b main
   Breakpoint 1 at 0x9011b2a: file main.c, line 192.
   (gdb) c
   Continuing.

   Breakpoint 1, main () at main.c:192
   192         app_main();
   (gdb)

   Good luck!


Technical details:

   As for now, the GDB stub occupies the memory from 0x900000 up to
   0x9018000.

   Compile and link your test program at 0x9018000 and up, and it will work.

   The baud rate is 38400 for Player, 115200 for Recorder, and the settings
   are 8N1.

   Note that you may have to change the ATA I/O address in the ATA_CONTROL
   macro in sh-stub.c. go to Menu->Debug (keep out)->View HW info to find out.

   Linus Nielsen Feltzing