I'm debugging Linux 2.6.29-rc8 with OpenOCD. Linux for arm has arm generic debug option which send debug messages via DCC channel.
-- see -- make ARCH=arm menuconfig Kernel hacking Kernel low-level debugging functions Kernel low-level debugging via EmbeddedICE DCC channel --------- This patch adds a feature to recive such a message. to enable this feature, type target_request debugmsgs charmsg # I am not a good english speaker, and I do not know about texi. # please fix them, if there is strange sentence. -------- Hiroshi Ito Media Lab. Inc., URL http://www.mlb.co.jp ( Sorry, Japanese only. ) TEL +81-3-5294-7255 FAX +81-3-5294-7256
Index: src/target/target_request.c =================================================================== --- src/target/target_request.c (revision 1430) +++ src/target/target_request.c (working copy) @@ -39,6 +39,7 @@ #include <string.h> command_t *target_request_cmd = NULL; +static int charmsg_mode = 0; int target_asciimsg(target_t *target, u32 length) { @@ -119,7 +120,11 @@ int target_request(target_t *target, u32 request) { target_req_cmd_t target_req_cmd = request & 0xff; - + + if ( charmsg_mode ) { + target_charmsg(target, target_req_cmd ); + return ERROR_OK; + } switch (target_req_cmd) { case TARGET_REQ_TRACEMSG: @@ -268,7 +273,7 @@ if (argc > 0) { - if (!strcmp(args[0], "enable")) + if (!strcmp(args[0], "enable") || !strcmp(args[0], "charmsg")) { /* don't register if this command context is already receiving */ if (!receiving) @@ -276,6 +281,7 @@ receiving = 1; add_debug_msg_receiver(cmd_ctx, target); } + charmsg_mode = !strcmp(args[0], "charmsg"); } else if (!strcmp(args[0], "disable")) { @@ -288,13 +294,12 @@ } else { - command_print(cmd_ctx, "usage: target_request debugmsgs ['enable'|'disable']"); + command_print(cmd_ctx, "usage: target_request debugmsgs ['enable'|'disable'|'charmsg']"); } } command_print(cmd_ctx, "receiving debug messages from current target %s", - (receiving) ? "enabled" : "disabled"); - + (receiving) ? (charmsg_mode?"charmsg":"enabled") : "disabled" ); return ERROR_OK; } Index: doc/openocd.texi =================================================================== --- doc/openocd.texi (revision 1430) +++ doc/openocd.texi (working copy) @@ -2871,9 +2871,9 @@ OpenOCD can handle certain target requests, currently debugmsg are only supported for arm7_9 and cortex_m3. See libdcc in the contrib dir for more details. @itemize @bullet -...@item @b{target_request debugmsgs} <@var{enable}|@var{disable}> +...@item @b{target_request debugmsgs} <@var{enable}|@var{disable}|@var{charmsg}> @cindex target_request debugmsgs -...@*enable/disable target debugmsgs requests. debugmsgs enable messages to be sent to the debugger while the target is running. +...@*enable/disable target debugmsgs requests. debugmsgs enable messages to be sent to the debugger while the target is running. @var{charmsg} recives the message like linux kernel ``Kernel low-level debugging via EmbeddedICE DCC channel'' option way. @end itemize @node JTAG Commands
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development