Hello Ito, I did something similar thanks for the patch. did you by any chance also look at the arm dcc serial driver that is handing around on the net?
On Tue, Mar 24, 2009 at 11:56 AM, Hiroshi Ito <i...@mlb.co.jp> wrote: > 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 > > _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development