Use timeval helpers
Some of these changes actually fix broken comparisons which could occasionally fail. Others just clean up the code and make it more clear. Change-Id: I6c398bdc45fa0d2716f48a74822457d1351f81a5 Signed-off-by: Christopher Head <chead@zaber.com> Reviewed-on: http://openocd.zylin.com/4380 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
committed by
Freddie Chopin
parent
e0fc7a54f2
commit
2428722a23
@@ -28,6 +28,7 @@
|
||||
|
||||
#include "embeddedice.h"
|
||||
#include "register.h"
|
||||
#include <helper/time_support.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
@@ -576,8 +577,8 @@ int embeddedice_handshake(struct arm_jtag *jtag_info, int hsbit, uint32_t timeou
|
||||
uint8_t field2_out[1];
|
||||
int retval;
|
||||
uint32_t hsact;
|
||||
struct timeval lap;
|
||||
struct timeval now;
|
||||
struct timeval timeout_end;
|
||||
|
||||
if (hsbit == EICE_COMM_CTRL_WBIT)
|
||||
hsact = 1;
|
||||
@@ -610,7 +611,8 @@ int embeddedice_handshake(struct arm_jtag *jtag_info, int hsbit, uint32_t timeou
|
||||
fields[2].in_value = NULL;
|
||||
|
||||
jtag_add_dr_scan(jtag_info->tap, 3, fields, TAP_IDLE);
|
||||
gettimeofday(&lap, NULL);
|
||||
gettimeofday(&timeout_end, NULL);
|
||||
timeval_add_time(&timeout_end, 0, timeout * 1000);
|
||||
do {
|
||||
jtag_add_dr_scan(jtag_info->tap, 3, fields, TAP_IDLE);
|
||||
retval = jtag_execute_queue();
|
||||
@@ -621,8 +623,7 @@ int embeddedice_handshake(struct arm_jtag *jtag_info, int hsbit, uint32_t timeou
|
||||
return ERROR_OK;
|
||||
|
||||
gettimeofday(&now, NULL);
|
||||
} while ((uint32_t)((now.tv_sec - lap.tv_sec) * 1000
|
||||
+ (now.tv_usec - lap.tv_usec) / 1000) <= timeout);
|
||||
} while (timeval_compare(&now, &timeout_end) <= 0);
|
||||
|
||||
LOG_ERROR("embeddedice handshake timeout");
|
||||
return ERROR_TARGET_TIMEOUT;
|
||||
|
||||
Reference in New Issue
Block a user