2002-04-15 13:26:40 +00:00
|
|
|
--------------------------------------------------------------------
|
|
|
|
__________ __ ___.
|
|
|
|
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
|
2003-05-17 00:31:50 +00:00
|
|
|
For Player models, just type:
|
|
|
|
# make
|
|
|
|
|
|
|
|
For Recorder, type
|
|
|
|
#make RECORDER=1
|
2002-04-15 13:26:40 +00:00
|
|
|
|
|
|
|
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:
|
|
|
|
|
2003-05-17 00:31:50 +00:00
|
|
|
For Player:
|
2002-04-15 13:26:40 +00:00
|
|
|
# sh-elf-gdb -b 38400 test.elf
|
|
|
|
|
2003-05-17 00:31:50 +00:00
|
|
|
For Recorder:
|
|
|
|
# sh-elf-gdb -b 115200 test.elf
|
|
|
|
|
2002-04-15 13:26:40 +00:00
|
|
|
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:
|
|
|
|
|
2003-05-17 00:31:50 +00:00
|
|
|
(gdb) b main
|
|
|
|
Breakpoint 1 at 0x9011b2a: file main.c, line 192.
|
2002-04-15 13:26:40 +00:00
|
|
|
(gdb) c
|
|
|
|
Continuing.
|
|
|
|
|
2003-05-17 00:31:50 +00:00
|
|
|
Breakpoint 1, main () at main.c:192
|
|
|
|
192 app_main();
|
2002-04-15 13:26:40 +00:00
|
|
|
(gdb)
|
|
|
|
|
|
|
|
Good luck!
|
|
|
|
|
|
|
|
|
|
|
|
Technical details:
|
|
|
|
|
|
|
|
As for now, the GDB stub occupies the memory from 0x900000 up to
|
2003-05-17 00:31:50 +00:00
|
|
|
0x9018000.
|
2002-04-15 13:26:40 +00:00
|
|
|
|
|
|
|
Compile and link your test program at 0x9018000 and up, and it will work.
|
|
|
|
|
2003-05-17 00:31:50 +00:00
|
|
|
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
|