summaryrefslogtreecommitdiff
path: root/src/target/target_request.c
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-03-24 11:27:49 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-03-24 11:27:49 +0000
commitf7f37ea289f837077fd41f549ec367e597d64251 (patch)
tree80d1d2914d54a1302f9e73c8166a0e90b1a52cf3 /src/target/target_request.c
parent9d3d3297aef0fcfb170e9b645d456e10e6097e5f (diff)
downloadopenocd+libswd-f7f37ea289f837077fd41f549ec367e597d64251.tar.gz
openocd+libswd-f7f37ea289f837077fd41f549ec367e597d64251.tar.bz2
openocd+libswd-f7f37ea289f837077fd41f549ec367e597d64251.tar.xz
openocd+libswd-f7f37ea289f837077fd41f549ec367e597d64251.zip
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
Diffstat (limited to 'src/target/target_request.c')
-rw-r--r--src/target/target_request.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/target/target_request.c b/src/target/target_request.c
index b266fea5..9c8551f5 100644
--- a/src/target/target_request.c
+++ b/src/target/target_request.c
@@ -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_hexmsg(target_t *target, int size, u32 length)
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 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
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 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
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 @@ int handle_target_request_debugmsgs_command(struct command_context_s *cmd_ctx, c
}
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;
}