Hiroshi Ito <ito@mlb.co.jp> Linux for arm has arm generic debug option which send debug messages via
DCC channel. git-svn-id: svn://svn.berlios.de/openocd/trunk@1432 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
9d3d3297ae
commit
f7f37ea289
|
@ -2871,9 +2871,9 @@ encoding of the [M4:M0] bits of the PSR.
|
||||||
OpenOCD can handle certain target requests, currently debugmsg are only supported for arm7_9 and cortex_m3.
|
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.
|
See libdcc in the contrib dir for more details.
|
||||||
@itemize @bullet
|
@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
|
@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
|
@end itemize
|
||||||
|
|
||||||
@node JTAG Commands
|
@node JTAG Commands
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
command_t *target_request_cmd = NULL;
|
command_t *target_request_cmd = NULL;
|
||||||
|
static int charmsg_mode = 0;
|
||||||
|
|
||||||
int target_asciimsg(target_t *target, u32 length)
|
int target_asciimsg(target_t *target, u32 length)
|
||||||
{
|
{
|
||||||
|
@ -120,6 +121,10 @@ int target_request(target_t *target, u32 request)
|
||||||
{
|
{
|
||||||
target_req_cmd_t target_req_cmd = request & 0xff;
|
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)
|
switch (target_req_cmd)
|
||||||
{
|
{
|
||||||
case TARGET_REQ_TRACEMSG:
|
case TARGET_REQ_TRACEMSG:
|
||||||
|
@ -268,7 +273,7 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
|
||||||
|
|
||||||
if (argc > 0)
|
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 */
|
/* don't register if this command context is already receiving */
|
||||||
if (!receiving)
|
if (!receiving)
|
||||||
|
@ -276,6 +281,7 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
|
||||||
receiving = 1;
|
receiving = 1;
|
||||||
add_debug_msg_receiver(cmd_ctx, target);
|
add_debug_msg_receiver(cmd_ctx, target);
|
||||||
}
|
}
|
||||||
|
charmsg_mode = !strcmp(args[0], "charmsg");
|
||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "disable"))
|
else if (!strcmp(args[0], "disable"))
|
||||||
{
|
{
|
||||||
|
@ -288,13 +294,12 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
|
||||||
}
|
}
|
||||||
else
|
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",
|
command_print(cmd_ctx, "receiving debug messages from current target %s",
|
||||||
(receiving) ? "enabled" : "disabled");
|
(receiving) ? (charmsg_mode?"charmsg":"enabled") : "disabled" );
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue