Перейти к содержанию
    

web на stm32

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

 

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

 

Лог q.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2144

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Wireshark

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...