реклама на сайте
подробности

 
 
> STM32F4+lwip медленно работает.
Oleg_IT
сообщение Oct 31 2016, 06:01
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Проект сгенерил в STM32Cube. Работает нормально. Возникла необходимо увеличить скорость передачи, данные 512 байт, очередную порцию передаю по приходу ответа с принимающей стороны. Скорость получается всего 4 Гц да ещё с периодическим замиранием секунды на две, три. Если игнорировать сообщение о получении данных и слать чаще, то возникает ошибка памяти и пакеты теряются. Как ускорить передачу?
Приемная сторона или 100 Мбит или 1Гбит (пробую на двух компах), ARM автоматом определяет 10 Мб, если при генерации проекта ставлю 100 Мбит картина не меняется.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Oct 31 2016, 07:25
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Oleg_IT @ Oct 31 2016, 09:01) *
данные 512 байт, очередную порцию передаю по приходу ответа с принимающей стороны.

TCP? UDP? Если TCP - погуглите по ключевым словами "LwIP delayed ack" и "LwIP nagle algorithm", возможно найдете что-то полезное.

QUOTE (Oleg_IT @ Oct 31 2016, 09:01) *
Если игнорировать сообщение о получении данных и слать чаще, то возникает ошибка памяти и пакеты теряются.
Может стоит выделить больше буферов?

QUOTE (Oleg_IT @ Oct 31 2016, 09:01) *
ARM автоматом определяет 10 Мб, если при генерации проекта ставлю 100 Мбит картина не меняется.
Я не знаю, что там генерит куб, но если есть прерывание от PHY, то нужно в его обработчике читать из физики получившиеся параметры канала (реальную скорость и дуплекс/полудуплекс) и прописывать их в ETH->MACCR, а также вызывать netif_set_link_up()/netif_set_link_down(). Если прерывания физики нет - периодически читать физику и ловить состояние Auto Negotiation Complete и Link Down и по ним проделывать вышеописанные действия. Физика, разумеется, должна быть настроена на Auto Negotiation со всеми возможными для вашей реализации параметрами (10/100, Full/Halfduplex).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   STM32F4+lwip медленно работает.   Oct 31 2016, 06:01
- - Oleg_IT   Да, не уточнил у меня TCP. По буферам посмотрю, н...   Oct 31 2016, 08:44
|- - kolobok0   [quote name='Oleg_IT' date='Oct 31 201...   Oct 31 2016, 17:56
- - Oleg_IT   Чем TCP от UDP отличается я знаю, это так к сведен...   Nov 1 2016, 05:24
|- - kolobok0   Цитата(Oleg_IT @ Nov 1 2016, 08:24) Чем T...   Nov 5 2016, 07:45
- - Sanya_kv   Цитата(Oleg_IT @ Oct 31 2016, 10:01) Прое...   Nov 3 2016, 10:26
- - Oleg_IT   По моей ссылки кода нет, там теория TCP для новичк...   Nov 7 2016, 05:36
|- - kolobok0   Цитата(Oleg_IT @ Nov 7 2016, 08:36) ....О...   Nov 7 2016, 18:43
|- - scifi   Цитата(kolobok0 @ Nov 7 2016, 21:43) в TC...   Nov 7 2016, 19:03
|- - Oleg_IT   Wireshark показывает Test1.JPG из приложения. IP …...   Nov 8 2016, 09:48
|- - scifi   Цитата(Oleg_IT @ Nov 8 2016, 12:48) Как в...   Nov 8 2016, 09:59
||- - Oleg_IT   Цитата(scifi @ Nov 8 2016, 13:59) Если да...   Nov 8 2016, 10:23
||- - scifi   Цитата(Oleg_IT @ Nov 8 2016, 13:23) Еслиб...   Nov 8 2016, 10:31
|- - kolobok0   Цитата(Oleg_IT @ Nov 8 2016, 12:48) ... Ф...   Nov 8 2016, 19:27
|- - Oleg_IT   Буфер конечно не резиновый, но и о скорости 100500...   Nov 9 2016, 05:49
|- - HardEgor   Цитата(Oleg_IT @ Nov 9 2016, 12:49) Буфер...   Nov 9 2016, 06:53
|- - kolobok0   Цитата(Oleg_IT @ Nov 9 2016, 08:49) ..В о...   Nov 9 2016, 19:02
- - sadat   Что показывает мониторинг программой wireshark или...   Nov 7 2016, 16:07
- - Сергей Борщ   QUOTE (scifi @ Nov 7 2016, 22:03) И вообщ...   Nov 8 2016, 07:07
- - Oleg_IT   Я свои байты вижу четыре раза в секунду. Может и ...   Nov 9 2016, 10:06
|- - scifi   Цитата(Oleg_IT @ Nov 9 2016, 13:06) Не по...   Nov 9 2016, 10:39
|- - HardEgor   Цитата(Oleg_IT @ Nov 9 2016, 17:06) Может...   Nov 9 2016, 12:27
- - arhiv6   Не надо делать так:Код slotSendToServer();...   Nov 10 2016, 04:56
|- - Oleg_IT   Цитата(arhiv6 @ Nov 10 2016, 08:56) Слот...   Nov 10 2016, 05:14
- - arhiv6   Но Вы запись в сокет делаете из этой же функции, к...   Nov 10 2016, 06:04
|- - Oleg_IT   Цитата(arhiv6 @ Nov 10 2016, 10:04) Но Вы...   Nov 10 2016, 08:44
- - Oleg_IT   Пытаюсь вывести дубужную информацию, подключил тер...   Nov 11 2016, 08:51
- - Oleg_IT   Решил я свою проблему. Код отсылки такой Кодtcp_na...   Nov 16 2016, 13:27


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016