81 lines
2.3 KiB
Text
81 lines
2.3 KiB
Text
|
--------------------------------------------------------------------
|
||
|
__________ __ ___.
|
||
|
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
|
||
|
|
||
|
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:
|
||
|
|
||
|
# sh-elf-gdb -b 38400 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 22
|
||
|
Breakpoint 1 at 0x90182c6: file led.c, line 14.
|
||
|
(gdb) c
|
||
|
Continuing.
|
||
|
|
||
|
Breakpoint 2, main () at led.c:15
|
||
|
15 SSR1 &= ~(SCI_RDRF | SCI_ORER | SCI_PER | SCI_FER);
|
||
|
(gdb)
|
||
|
|
||
|
Good luck!
|
||
|
|
||
|
|
||
|
Technical details:
|
||
|
|
||
|
As for now, the GDB stub occupies the memory from 0x900000 up to
|
||
|
0x9018000. This will change.
|
||
|
|
||
|
Compile and link your test program at 0x9018000 and up, and it will work.
|
||
|
|
||
|
The baud rate is 38400, and the settings are 8N1.
|