Для начало надо проверить, сколько выделено всяких разных конечных
ресурсов. к примеру, у меня в lwipopts.h есть такое:
#define MEMP_NUM_TCP_PCB_LISTEN 1 // HTTP
#define MEMP_NUM_SYS_TIMEOUT 5 // TCP, ARP, SNTP, DHCP fine, DHCP coarse
полный перечень есть в файле include/lwip/opt.h
Если включить статистику, там видно расход всего этого хозяйства, как и ошибки, когда оно заканчивается. Если включить вывод диагностических сообщений, там тоже будет что-то интересное написано.