xvc client: handle failed ll_write()
Avoids "Send instruction failed" in a tight loop...
This commit is contained in:
parent
4c737b2b96
commit
daa1e38799
|
|
@ -99,7 +99,8 @@ int XVC_client::writeTMS(const uint8_t *tms, uint32_t len, bool flush_buffer,
|
||||||
// buffer full -> write
|
// buffer full -> write
|
||||||
if (_num_bits == _buffer_size * 8) {
|
if (_num_bits == _buffer_size * 8) {
|
||||||
// write
|
// write
|
||||||
ll_write(NULL);
|
if(!ll_write(NULL))
|
||||||
|
throw std::runtime_error("xvc ll_write fails");
|
||||||
_num_bits = 0;
|
_num_bits = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -147,7 +148,8 @@ int XVC_client::writeTDI(const uint8_t *tx, uint8_t *rx, uint32_t len, bool end)
|
||||||
uint16_t idx = _num_bits - 1;
|
uint16_t idx = _num_bits - 1;
|
||||||
_tms[(idx >> 3)] |= (1 << (idx & 0x07));
|
_tms[(idx >> 3)] |= (1 << (idx & 0x07));
|
||||||
}
|
}
|
||||||
ll_write((rx) ? rx_ptr : NULL); // write
|
if(!ll_write((rx) ? rx_ptr : NULL)) // write
|
||||||
|
throw std::runtime_error("xvc ll_write fails");
|
||||||
|
|
||||||
tx_ptr += tt;
|
tx_ptr += tt;
|
||||||
if (rx)
|
if (rx)
|
||||||
|
|
@ -184,7 +186,8 @@ int XVC_client::toggleClk(uint8_t tms, uint8_t tdi, uint32_t clk_len)
|
||||||
if (len < _num_bits)
|
if (len < _num_bits)
|
||||||
_num_bits = len;
|
_num_bits = len;
|
||||||
len -= _num_bits;
|
len -= _num_bits;
|
||||||
ll_write(NULL);
|
if(!ll_write(NULL))
|
||||||
|
throw std::runtime_error("xvc ll_write fails");
|
||||||
} while (len > 0);
|
} while (len > 0);
|
||||||
|
|
||||||
return clk_len;
|
return clk_len;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue