2026-02-26 12:58 AM - edited 2026-02-26 1:00 AM
Hi all,
I’m using STM32H755 on a Nucleo board with FreeRTOS, the socket-API and CubeMX-generated LWIP. Sending a UDP packet immediately after network init works fine, but if I wait ~10 seconds before calling sendto(), it returns successfully, DMA descriptors OWN=0, ETH IRQs are triggered, yet no packet reaches the wire. Calling sys_check_timeouts() before sendto() does not help. The tcpip_thread has high priority, while the sender task runs at IDLE priority. In my tests, I disabled the Cache.
It seems the issue is not PHY or DMA. It seems that sendto() copies data to the LWIP buffer, but the tcpip_thread does not process it after a long idle. How can UDP packets be reliably sent after idle without changing the network stack or manually triggering anything?
Thanks for any insights!