Здравствуйте. На плате некоторого устройства имеется связка STM32F407 + KSZ8041 + RJ-45 для связи с компьютером по Ethernet. На контроллере запускается TCP-сервер, на удаленном компьютере - TCP-клиент. На контроллере стоит кейловская операционка RL-RTX и самопальный стек. При потоковой передаче данных от сервера клиенту замечена такая неприятная вещь, что иногда данные от контроллера задерживаются в его TxFIFO до того момента, пока в его приемный буфер не поступит какой-либо новый фрейм. В случае с TCP-протоколом и при отсутствии других устройств в сети задержка может достигать 200 мс, когда по таймауту клиент не пошлет ACK-пакет. Как объяснить такое поведение контроллера - непонятно. Кто-нибудь сталкивался с подобной проблемой?
|