| -------------------------------------------------------------------- |
| __________ __ ___. |
| 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 |