Использую FreeRTOS 7.2 + LwIP 1.4.0, процессор STM32F217.
Сборка основана на демо-проекте с сайта st.com, в которой был обновлён сначала FreeRTOS, затем LwIP. С LwIP 1.3.2 утечка тоже была (собственно, поэтому и решил попробовать обновить LwIP 1.3.2 -> 1.4).
Проблема проявляется следующим образом:
Константа PBUF_POOL_SIZE = 20
Веду опрос контроллера по modbus-tcp с 4 клиентов, всё работает прекрасно. В статистике стека по использованию буферов PBUF_POOL used = 0..2, max = 4..5. Параллельно пингую контроллер.
Через некоторое время (обычно около 8-10 минут) счётчики используемых буферов начинают расти (used и max) вплоть до 20. Если во время роста остановить опрос контроллера, то счётчик used не обнуляется, т.е. буферы не освобождаются. Далее при дальнейшем опросе все буферы занимаются и все новые входящие пакеты игнорятся.
Проблема была и до обновления стека.
Подозреваю что баг либо в драйвере MAC, либо в моей задаче.
В какую сторону копать? Наверняка многие с этим сталкивались.