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

 
 
 
Reply to this topicStart new topic
> Lwip UDP send ZC706, Помогите разобраться
ASD100288
сообщение Aug 21 2017, 08:01
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 18-07-11
Пользователь №: 66 283



Добрый день! Нужна помощь. Есть задача посылать UDP пакеты с отладочной платы ZC706 c определенной частотой. За основу взял следующий код и библиотеку lwip:

CODE
while (1)
{
xemacif_input(netif);
count++;

if (count == 80000)
{
p = pbuf_alloc(PBUF_TRANSPORT, buflen, PBUF_POOL);
if (!p)
{
xil_printf("error allocating pbuf \r\n");
return ERR_MEM;
}
PayloadID(data); // функция генерации данных
memcpy(p->payload, data, buflen);
udp_send(udp_1, p);
xil_printf("\n SEND UDP Packets \r\n");
count = 0;
pbuf_free(p);
}
}


Возникает следующая проблема: при просмотре на приемном компе с помощью Wireshark наблюдаю, что первый пакет выходит одновременно со вторым с минимальной задержкой (как будто второй его выталкивет), третий выходит один с задержкой, четвертый выходит вместе с пятым и т.д. Кто-нибудь знает почему так может быть? Почему пакеты через один выходят сразу по два? Через отладчик вижу что функция udp_send проходит нормально через if (count == 80000), но на приемнике пакеты слипаются.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 21 2017, 11:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 ASD100288:
Ключевое словосочетание тут "на приемном компе". Если вы работает из под-оси то у вас всегда будет, скажем так, внутренее "манагерство" пакетов осью biggrin.gif
В принципе как опыт - попробуйте задать интервалы в секунд 10-20 и посмотреть что будет wink.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th April 2024 - 09:40
Рейтинг@Mail.ru


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