We've been using ESP-IDF of various versions (currently 5.0.3) with cellular and other modules via UART, using the built-in ESP-IDF uart driver (i.e. with
uart_driver_install(), and an event queue size of 20) for years now, never had a problem with it ever, rock solid.
However, we've just started using the ESP-IDF built-in IP stack, connecting the bottom of LWIP's PPP to our module transport, and when we do that we very frequently get:
Code: Select all
V (1246087) uart: UART event queue full
There are no changes to our UART or driver code, they are doing what they always did, just passing PPP frames now. There is no increase in logging output, all about the same. The only difference is that LWIP is now active. The errors get so bad that nothing gets through the IP stack and our tests fail. We have tried, experimentally, doubling the event queue size passed to
uart_driver_install() and that doesn't help, the task serving the UART event queue is evidently being blocked for too long.
Question: is there something inside the LWIP stack, preferably something we can tune, which could be hogging CPU?