https://pastebin.com/cW0v4hF6
устил freeRTOS и lwip 1.4.1 с используемым сокетом api на процессоре stm32 (stm32f407). В целом это работает довольно хорошо. Я могу отправлять и получать данные с помощью UDP и TCP.
Но в промежутке времени от 3 до 7 дней я вижу странное поведение.
Моя проблема
Каждые 3-7 дней мой клиент (Windows 10, который отправляет 1-2 HTTP-запроса в секунду) не отправляет эти запросы. Когда это происходит, последовательно выполняется ~ 10 запросов, которые не выполняются. Через несколько минут стек вообще не восстановится.
Мое предположение
Я думаю, что я возможно что-то неправильно настроил в моей конфигурации LWIP. Поскольку стек хорошо используется и не должен иметь ошибок в этом направлении
Мои настройки Ethernet
сервер и клиент подключены напрямую, между ними нет коммутатора, концентратора или маршрутизатора.
сервер (stm32 / lwip):
статический, 192.168.168.2маска сети, 255.255.255.0клиент (win10) eth0:
статический, 192.168.168.1маска сети, 255.255.255.0клиент (win10) eth1:
dhcp, в нормально работающую сетьМои попытки
На данный момент у меня запущены тесты, которые отправляют ~ 7-8 запросов в секунду, но ошибка не возникает чаще. Я играл с конфигом lwip:
больше памяти для стекабольше pbufsбольшие pbufsс / без отставанияНо все без улучшения этой проблемы подключения. Может ли это быть из-за часто повторяющихся номеров портов от клиента, которые могут создать эту проблему?
Здесь у меня есть соответствующая часть вывода отладки lwip:
tcp debugging output
Вот журнал Wireshark:
hole wireshark log:
https://www.file-upload.net/download-12682664/debug_tcp_00001_20170828172950.html
И вот мой lwipopts.h:
lwip configuration: