Open
Description
Hello, it seems that these lines
// wait for TX buffer to free
while ((readRegister(REG_SR) & 0x04) != 0x04) {
yield();
}
and
// wait for TX complete
while ((readRegister(REG_SR) & 0x08) != 0x08) {
if (readRegister(REG_ECC) == 0xd9) {
modifyRegister(REG_CMR, 0x1f, 0x02); // error, abort
return 0;
}
yield();
}
can make the device hang, I think that the TX buffer is full when there is nothing connected to the bus to RX and ack the data. Then the buffer gets full and the device hangs.
How can the TX buffer be cleared ? or there should be a timeout for these while loops and then return an error code
Metadata
Metadata
Assignees
Labels
No labels