Докопался по до этого места: void
tcp_timer_needed(void)
{
LWIP_ASSERT_CORE_LOCKED();
/* timer is off but needed again? */
if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) {
/* enable and start timer */
tcpip_tcp_timer_active = 1;
sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
}
}
Глюк происходит на строчке:
sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
Что-то с таймерами. Чую, что проблема в библе mbedTLS, там я как раз дефайнами какие-то таймеры отключал. Но накая связь с TCP всё равно не пойму. Хотя сам TLS и в HTTPS используется. Может там как-то таймеры перекрываются неправильно.