Jump to content
    

web на stm32

Прошу совета. Есть проект на STM32F107RCT6 c DP83848IVV, без ОС, работает корректно и стабильно (до -20C), подняты и работают dhcp, dns, ntp, icmp, web + крутятся свои задачи.

 

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

 

Лог q.rar

Share this post


Link to post
Share on other sites

Паузы, судя по дампу, делает не компьютер, а контроллер отдаёт пакеты со скоростью 5 пакетов в секунду.

Ищите, почему у Вас так редко происходит отправка пакетов.

Возможно большие накладные расходы. Возможно редко вызывается поллер сети. Возможно ещё до чёртиков вариантов.

Если есть свободные пины - выводите на них сигнал при отправке данных, например. Начало отправки - пин поднимается. Конец отправки - опускается. Наблюдайте за сигналом. Когда поднимается, что долго держит контекст исполнения. И так далее.

Задержки - стабильны - 200мс. Значит, явно дело в коде.

На том же кристалле (разве что без других задач) можно гнать трафик более 50МБит/с (проверял на UDP).

Share this post


Link to post
Share on other sites

Паузы, судя по дампу, делает не компьютер, а контроллер отдаёт пакеты со скоростью 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 поможет?

 

 

Share this post


Link to post
Share on other sites

2144

Я, честно скажу, не смотрел лог - не знаю чем открыть. Почему нельзя сделать размер окна максимальным? Возможно носитель данных тупит?

 

Share this post


Link to post
Share on other sites

Я, честно скажу, не смотрел лог - не знаю чем открыть...

Wireshark

 

...Почему нельзя сделать размер окна максимальным? Возможно носитель данных тупит?

Нельзя. Точнее, физически не возможно. Максимальный размер окна 2^16-1 (65535). Размер ram у STM32F107RCT6 64к, поэтому и невозможно окно сделать на максимальный размер - есть ограничения в памяти.

Share this post


Link to post
Share on other sites

Эххх, ну миллион же тем на форуме (а в остальных интернетах - еще больше). Ключевое слово - "Delayed ACK".

Share this post


Link to post
Share on other sites

...Ключевое слово - "Delayed ACK".

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

 

Спасибо за правильный пинок.

 

Share this post


Link to post
Share on other sites

Вся сессия (от syn до fin) по загрузке страниц, в том числе динамических проходит до ~70мс. Браузер быстро открывает.

Плюс увеличен win size до 5840 и размер передаваемого сообщения до максимума 1460.

 

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

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...