Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: web на stm32
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
bzx
Прошу совета. Есть проект на STM32F107RCT6 c DP83848IVV, без ОС, работает корректно и стабильно (до -20C), подняты и работают dhcp, dns, ntp, icmp, web + крутятся свои задачи.

Вопрос к web. Долго загружается страница, до 2-3 секунд. Проверено на разных браузерах. По логам видно, что браузер делает паузы до 50-200мс и их много. Лог шарка привожу. Самая большая задержка в этом логе от девайса к компу ~7мс. Короткий css файл стилей быcтро передается, за ~210мс.

Лог Нажмите для просмотра прикрепленного файла
AlanDrakes
Паузы, судя по дампу, делает не компьютер, а контроллер отдаёт пакеты со скоростью 5 пакетов в секунду.
Ищите, почему у Вас так редко происходит отправка пакетов.
Возможно большие накладные расходы. Возможно редко вызывается поллер сети. Возможно ещё до чёртиков вариантов.
Если есть свободные пины - выводите на них сигнал при отправке данных, например. Начало отправки - пин поднимается. Конец отправки - опускается. Наблюдайте за сигналом. Когда поднимается, что долго держит контекст исполнения. И так далее.
Задержки - стабильны - 200мс. Значит, явно дело в коде.
На том же кристалле (разве что без других задач) можно гнать трафик более 50МБит/с (проверял на UDP).
bzx
Цитата(AlanDrakes @ Jan 13 2018, 11:29) *
Паузы, судя по дампу, делает не компьютер, а контроллер отдаёт пакеты со скоростью 5 пакетов в секунду.
Ищите, почему у Вас так редко происходит отправка пакетов.
...
Задержки - стабильны - 200мс. Значит, явно дело в коде.

Нет. Из лога: пакет №27, сформирован и отправлен устройством (ip: ...100, mac 00:80:e1...) через ~0,539мс, размер данных 536. Пакет №28, ответ от компа (ip: ...99) сформирован и отправлен через ~203.572мс, размер данных 0.
Т.е. устройство достаточно быстро отвечает. Самая большая задержка от устройства ~6.592мс (пакет №5), длина 536. Минимальная задержка от устройства ~0.009мс (пакет №11), длина 536.

Увеличение window size поможет?

prottoss
Цитата(bzx @ Jan 13 2018, 17:00) *
Увеличение window size поможет?
А сейчас какой максимальный?
bzx
Цитата(prottoss @ Jan 13 2018, 14:08) *
А сейчас какой максимальный?

2144
prottoss
Цитата(bzx @ Jan 13 2018, 17:14) *
2144

Я, честно скажу, не смотрел лог - не знаю чем открыть. Почему нельзя сделать размер окна максимальным? Возможно носитель данных тупит?
bzx
Цитата(prottoss @ Jan 13 2018, 14:26) *
Я, честно скажу, не смотрел лог - не знаю чем открыть...

Wireshark

Цитата(prottoss @ Jan 13 2018, 14:26) *
...Почему нельзя сделать размер окна максимальным? Возможно носитель данных тупит?

Нельзя. Точнее, физически не возможно. Максимальный размер окна 2^16-1 (65535). Размер ram у STM32F107RCT6 64к, поэтому и невозможно окно сделать на максимальный размер - есть ограничения в памяти.
Rst7
Эххх, ну миллион же тем на форуме (а в остальных интернетах - еще больше). Ключевое слово - "Delayed ACK".
bzx
Цитата(Rst7 @ Jan 13 2018, 14:46) *
...Ключевое слово - "Delayed ACK".

Агась, опять на те же грабли наступил...

Спасибо за правильный пинок.
bzx
Вся сессия (от syn до fin) по загрузке страниц, в том числе динамических проходит до ~70мс. Браузер быстро открывает.
Плюс увеличен win size до 5840 и размер передаваемого сообщения до максимума 1460.

Вопрос закрыт.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.