X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Ftarget%2Ftarget_request.c;h=1fedfb222dd27e35eafb19db345f2645a432e0fd;hb=ed028542edef963acfea6b67a07ba2dd396543de;hp=d22b8a2b9e7447cabd838bc008e2531f309176f9;hpb=38e376d232ecb3d6a436a20c09019d1a13b0d42b;p=fw%2Fopenocd diff --git a/src/target/target_request.c b/src/target/target_request.c index d22b8a2b9..1fedfb222 100644 --- a/src/target/target_request.c +++ b/src/target/target_request.c @@ -36,6 +36,15 @@ #include "trace.h" +static bool got_message = false; + +bool target_got_message(void) +{ + bool t = got_message; + got_message = false; + return t; +} + static int charmsg_mode = 0; static int target_asciimsg(struct target *target, uint32_t length) @@ -118,6 +127,9 @@ int target_request(struct target *target, uint32_t request) { target_req_cmd_t target_req_cmd = request & 0xff; + /* Record that we got a target message for back-off algorithm */ + got_message = true; + if (charmsg_mode) { target_charmsg(target, target_req_cmd); return ERROR_OK; @@ -182,11 +194,9 @@ static int add_debug_msg_receiver(struct command_context *cmd_ctx, struct target static struct debug_msg_receiver* find_debug_msg_receiver(struct command_context *cmd_ctx, struct target *target) { int do_all_targets = 0; - struct debug_msg_receiver **p = &target->dbgmsg; /* if no target has been specified search all of them */ - if (target == NULL) - { + if (target == NULL) { /* if no targets haven been specified */ if (all_targets == NULL) return NULL; @@ -195,8 +205,9 @@ static struct debug_msg_receiver* find_debug_msg_receiver(struct command_context do_all_targets = 1; } - do - { + /* so we target != null */ + struct debug_msg_receiver **p = &target->dbgmsg; + do { while (*p) { if ((*p)->cmd_ctx == cmd_ctx) @@ -303,10 +314,10 @@ COMMAND_HANDLER(handle_target_request_debugmsgs_command) static const struct command_registration target_req_exec_command_handlers[] = { { .name = "debugmsgs", - .handler = &handle_target_request_debugmsgs_command, + .handler = handle_target_request_debugmsgs_command, .mode = COMMAND_EXEC, - .help = "set reception of debug messages from target", - .usage = "(enable|disable)", + .help = "display and/or modify reception of debug messages from target", + .usage = "['enable'|'charmsg'|'disable']", }, COMMAND_REGISTRATION_DONE };