target: improve robustness of polling and reexamination
When a target was present on OpenOCD start but later disappeared for whatever reason (typically unstable connection or target going to sleep) and reappeared only for a brief period of time, reexamination would fail, and poll would no longer run. This patch fixes it. Change-Id: I61f9b5a3f366a761320e233f4e1689f926b5556d Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2370 Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Tested-by: jenkins
This commit is contained in:
parent
420bd49b5b
commit
c120fb6d89
|
@ -2425,7 +2425,13 @@ static int handle_target(void *priv)
|
|||
if (target->backoff.times > 0) {
|
||||
LOG_USER("Polling target %s succeeded again, trying to reexamine", target_name(target));
|
||||
target_reset_examined(target);
|
||||
target_examine_one(target);
|
||||
retval = target_examine_one(target);
|
||||
/* Target examination could have failed due to unstable connection,
|
||||
* but we set the examined flag anyway to repoll it later */
|
||||
if (retval != ERROR_OK) {
|
||||
target->examined = true;
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
||||
target->backoff.times = 0;
|
||||
|
|
Loading…
Reference in New Issue