Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#8454 - Implement debug() for ARM architectures via JTAG DCC

Attached to Project: Rockbox
Opened by Catalin Patulea (Catalin Patulea) - Sunday, 13 January 2008, 19:41 GMT+2
Task Type Patches
Category Operating System/Drivers
Status Unconfirmed
Assigned To No-one
Player type All players
Severity Low
Priority Normal
Reported Version current build
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Private No

Details

The ARM hardware debugger via JTAG spec (EmbeddedICE) specifies a sideband channel for target<->debugger communication called DCC (Debug Communications Channel). openocd, an open-source debugger compatible with the EmbeddedICE standard, supports using this channel for textual debug messages from the target.

The attached patch implements the target side of this channel. Messages can be enabled in openocd using the "target_request debugmsgs enable" command.

WARNING: If -DDEBUG is enabled and there is no hardware debugger attached to drain the DCC buffer, debug() becomes very slow because it has to wait for the writes to time out. However, this is unlikely to happen because -DDEBUG isn't typically enabled for target builds.
This task depends upon

Comment by Catalin Patulea (Catalin Patulea) - Sunday, 13 January 2008, 20:20 GMT+2
Fix for "Error: selected processor does not support `bkpt 0'" on non-arm9ej-s architectures (like arm9tdmi).
Comment by Catalin Patulea (Catalin Patulea) - Sunday, 13 January 2008, 21:01 GMT+2
Oh, and this patch also fixes some concurrency issues with debugf (which is not reentrant because of the static printf buffer).
Comment by Catalin Patulea (Catalin Patulea) - Sunday, 13 January 2008, 21:22 GMT+2
Now also fixes "undefined reference to `debug_init'" for Normal (as opposed to Bootloader) builds.
Comment by Catalin Patulea (Catalin Patulea) - Sunday, 13 January 2008, 22:14 GMT+2
Once more with passion! (Fix double-newlines due to openocd appending a newline.)

Loading...