Open
Description
On a number of locations in Socket.cpp there is a delayMicroseconds()
added while an SPI transaction is active. This can happen when a goto makesocket
is executed in the lines above.
This delay might cause a context switch and another task trying to start a SPI transaction with a max-delay. This can cause wacthdog timers to trigger.
I think we should remove the delays to avoid this, as they are already marked as "is this needed?"
line 103:
makesocket:
//Serial.printf("W5000socket %d\n", s);
EthernetServer::server_port[s] = 0;
delayMicroseconds(250); // TODO: is this needed??
W5100.writeSnMR(s, protocol);
W5100.writeSnIR(s, 0xFF);
line 167:
makesocket:
//Serial.printf("W5000socket %d\n", s);
EthernetServer::server_port[s] = 0;
delayMicroseconds(250); // TODO: is this needed??
W5100.writeSnMR(s, protocol);
W5100.writeSnIR(s, 0xFF);