From 803351ec59cb57c63129c77d95b5edf2fc65c302 Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Sat, 31 Jul 2010 21:45:56 +0200 Subject: jtag: add jtag_flush_queue_sleep debug command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it can be useful to throttle performance: test differences in behavior, test performance effect of long roundtrips. Signed-off-by: Øyvind Harboe --- src/jtag/core.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/jtag/core.c') diff --git a/src/jtag/core.c b/src/jtag/core.c index 352985ff..10686819 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -46,6 +46,9 @@ /// The number of JTAG queue flushes (for profiling and debugging purposes). static int jtag_flush_queue_count; +// Sleep this # of ms after flushing the queue +static int jtag_flush_queue_sleep = 0; + static void jtag_add_scan_check(struct jtag_tap *active, void (*jtag_add_scan)(struct jtag_tap *active, int in_num_fields, const struct scan_field *in_fields, tap_state_t state), int in_num_fields, struct scan_field *in_fields, tap_state_t state); @@ -129,6 +132,11 @@ static struct jtag_interface *jtag = NULL; /* configuration */ struct jtag_interface *jtag_interface = NULL; +void jtag_set_flush_queue_sleep(int ms) +{ + jtag_flush_queue_sleep = ms; +} + void jtag_set_error(int error) { if ((error == ERROR_OK) || (jtag_error != ERROR_OK)) @@ -826,6 +834,15 @@ void jtag_execute_queue_noclear(void) { jtag_flush_queue_count++; jtag_set_error(interface_jtag_execute_queue()); + + if (jtag_flush_queue_sleep > 0) + { + /* For debug purposes it can be useful to test performance + * or behavior when delaying after flushing the queue, + * e.g. to simulate long roundtrip times. + */ + usleep(jtag_flush_queue_sleep * 1000); + } } int jtag_get_flush_queue_count(void) -- cgit v1.2.3-18-g5258