Работаем через PPP протокол и сверху TCP/IP по виалоновскому протоколу.
При приемо-передаче небольших пакетов данных проблем не возникает. Но при передаче на устройство большого массива байтов прием сбоит. Стек принимает ровно 9 IP пакетов (по ~1400байт каждый), после чего netconn_recv перестает принимать пакеты (потому что модем их перестает выдавать). Память нигде не утекает, это контроллируется. На нехватку памяти не похоже. FreeRTOS находится в IDLE >92% времени. Такое ощущение что проблема на уровне IP, перешевелил все настроки, которые понимал и не понимал, но бесполезно - 9 пакетов и хоть умри. Тип и содержание файла не влияет на результат.
Из зависания выходит если начать новую передачу на устройство. При этом в лог сыпется такое:
Код
pppInProc[0]: got 1355 bytes
[b]pppInProc[0]: Dropping bad fcs 0x63B8 proto=0x0021[/b]
pppDrop: pbuf len=500
pppInProc[0]: got 1405 bytes
pppInput[0]: ip in pbuf len=492
pppifOutput[0]: proto=0x0021
pppInProc[0]: got 1405 bytes
pppInput[0]: ip in pbuf len=492
pppifOutput[0]: proto=0x0021
[b]pppInProc[0]: Dropping bad fcs 0x63B8 proto=0x0021[/b]
pppDrop: pbuf len=500
pppInProc[0]: got 1405 bytes
pppInput[0]: ip in pbuf len=492
pppifOutput[0]: proto=0x0021
pppInProc[0]: got 1405 bytes
pppInput[0]: ip in pbuf len=492
pppifOutput[0]: proto=0x0021
Тут видно, что начинается передача которая подвисла, но срывается FCS (но потом восстанавливается) и в конечном итоге, когда массив допередастся, система вновь приходит в штатное состояние.
Подскажите где могла собака порыться? Чую что какие то настройки надо подправить в lwipopt.h, но допетрить не могу. Спасибо!!!!!