target_request: add target_got_message() that can be used to improve DCC performance
API change to allow implementing a back-off algorithm for polling hardware. Change-Id: I6cbe8b4534c8dfeb8442305171ea96b5481c1f17 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/26 Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Tested-by: Øyvind Harboe <oyvindharboe@gmail.com>__archive__
parent
ea295bd694
commit
80c20a186b
|
@ -36,6 +36,15 @@
|
||||||
#include "trace.h"
|
#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 charmsg_mode = 0;
|
||||||
|
|
||||||
static int target_asciimsg(struct target *target, uint32_t length)
|
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;
|
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) {
|
if (charmsg_mode) {
|
||||||
target_charmsg(target, target_req_cmd);
|
target_charmsg(target, target_req_cmd);
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
|
|
|
@ -47,5 +47,12 @@ int target_request(struct target *target, uint32_t request);
|
||||||
int delete_debug_msg_receiver(struct command_context *cmd_ctx,
|
int delete_debug_msg_receiver(struct command_context *cmd_ctx,
|
||||||
struct target *target);
|
struct target *target);
|
||||||
int target_request_register_commands(struct command_context *cmd_ctx);
|
int target_request_register_commands(struct command_context *cmd_ctx);
|
||||||
|
/**
|
||||||
|
* Read and clear the flag as to whether we got a message.
|
||||||
|
*
|
||||||
|
* This is used to implement the back-off algorithm on
|
||||||
|
* sleeping in idle mode.
|
||||||
|
*/
|
||||||
|
bool target_got_message(void);
|
||||||
|
|
||||||
#endif /* TARGET_REQUEST_H */
|
#endif /* TARGET_REQUEST_H */
|
||||||
|
|
Loading…
Reference in New Issue