tinker with Xscale performance, anti-log spamming is now only for debug_level 3 or more. Otherwise polling is done continously for 1 second.
git-svn-id: svn://svn.berlios.de/openocd/trunk@937 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
bbe7110f42
commit
91b6460671
|
@ -487,41 +487,40 @@ int xscale_read_tx(target_t *target, int consume)
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
int i;
|
/* if we want to consume the register content (i.e. clear TX_READY),
|
||||||
for (i=0; i<100; i++)
|
* we have to go straight from Capture-DR to Shift-DR
|
||||||
|
* otherwise, we go from Capture-DR to Exit1-DR to Pause-DR
|
||||||
|
*/
|
||||||
|
if (consume)
|
||||||
|
jtag_add_pathmove(3, path);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
/* if we want to consume the register content (i.e. clear TX_READY),
|
jtag_add_pathmove(sizeof(noconsume_path)/sizeof(*noconsume_path), noconsume_path);
|
||||||
* we have to go straight from Capture-DR to Shift-DR
|
}
|
||||||
* otherwise, we go from Capture-DR to Exit1-DR to Pause-DR
|
|
||||||
*/
|
jtag_add_dr_scan(3, fields, TAP_RTI);
|
||||||
if (consume)
|
|
||||||
jtag_add_pathmove(3, path);
|
if ((retval = jtag_execute_queue()) != ERROR_OK)
|
||||||
else
|
{
|
||||||
{
|
LOG_ERROR("JTAG error while reading TX");
|
||||||
jtag_add_pathmove(sizeof(noconsume_path)/sizeof(*noconsume_path), noconsume_path);
|
return ERROR_TARGET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
jtag_add_dr_scan(3, fields, TAP_RTI);
|
gettimeofday(&now, NULL);
|
||||||
|
if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
|
||||||
if ((retval = jtag_execute_queue()) != ERROR_OK)
|
{
|
||||||
{
|
LOG_ERROR("time out reading TX register");
|
||||||
LOG_ERROR("JTAG error while reading TX");
|
return ERROR_TARGET_TIMEOUT;
|
||||||
return ERROR_TARGET_TIMEOUT;
|
}
|
||||||
}
|
if (!((!(field0_in & 1)) && consume))
|
||||||
|
{
|
||||||
gettimeofday(&now, NULL);
|
goto done;
|
||||||
if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
|
}
|
||||||
{
|
if (debug_level>=3)
|
||||||
LOG_ERROR("time out reading TX register");
|
{
|
||||||
return ERROR_TARGET_TIMEOUT;
|
LOG_DEBUG("waiting 10ms");
|
||||||
}
|
usleep(10*1000); /* avoid flooding the logs */
|
||||||
if (!((!(field0_in & 1)) && consume))
|
|
||||||
{
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
LOG_DEBUG("waiting 10ms");
|
|
||||||
usleep(10*1000); /* avoid flooding the logs */
|
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
|
|
||||||
|
@ -585,28 +584,27 @@ int xscale_write_rx(target_t *target)
|
||||||
LOG_DEBUG("polling RX");
|
LOG_DEBUG("polling RX");
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
int i;
|
jtag_add_dr_scan(3, fields, TAP_RTI);
|
||||||
for (i=0; i<100; i++)
|
|
||||||
|
if ((retval = jtag_execute_queue()) != ERROR_OK)
|
||||||
{
|
{
|
||||||
jtag_add_dr_scan(3, fields, TAP_RTI);
|
LOG_ERROR("JTAG error while writing RX");
|
||||||
|
return retval;
|
||||||
if ((retval = jtag_execute_queue()) != ERROR_OK)
|
}
|
||||||
{
|
|
||||||
LOG_ERROR("JTAG error while writing RX");
|
gettimeofday(&now, NULL);
|
||||||
return retval;
|
if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
|
||||||
}
|
{
|
||||||
|
LOG_ERROR("time out writing RX register");
|
||||||
gettimeofday(&now, NULL);
|
return ERROR_TARGET_TIMEOUT;
|
||||||
if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
|
}
|
||||||
{
|
if (!(field0_in & 1))
|
||||||
LOG_ERROR("time out writing RX register");
|
goto done;
|
||||||
return ERROR_TARGET_TIMEOUT;
|
if (debug_level>=3)
|
||||||
}
|
{
|
||||||
if (!(field0_in & 1))
|
LOG_DEBUG("waiting 10ms");
|
||||||
goto done;
|
usleep(10*1000); /* avoid flooding the logs */
|
||||||
}
|
}
|
||||||
LOG_DEBUG("waiting 10ms");
|
|
||||||
usleep(10*1000); /* wait 10ms to avoid flooding the logs */
|
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue