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

 
 
> LwIP факт отправки UDP пакета
Real_Bastard
сообщение Dec 9 2013, 00:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 7-11-06
Из: Санкт-Петербург
Пользователь №: 22 041



Отсылаю больщой объем данных по UDP. Пакетами по 1000 байт. Не могу понять, как определить, готов стек к приему нового пакета или нет. Сейчас похоже слишком часто вызываю udp_send() и поэтому каждый второй пакет не доходит. Задержка помогает, но не всегда.
Код
while (1)
      {
        /* check if any packet received */
        if (ETH_CheckFrameReceived())
        {
          /* process received ethernet packet */
          LwIP_Pkt_Handle();
        }
        /* handle periodic timers for LwIP */
        LwIP_Periodic_Handle(LocalTime);
            get_new_data(data);  //получаю данные
            //delay(); //Задержка
        /* allocate pbuf from pool*/
            p = pbuf_alloc(PBUF_TRANSPORT, 1000, PBUF_POOL);
        if (p != NULL ) {
            /* copy data to pbuf */
            pbuf_take(p, (char*) data, 1000);
            /* send udp data */
            udp_send(upcb, p);
            /* free pbuf */
            pbuf_free(p);
        }
      }
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Dec 9 2013, 09:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



блокирующий и не блокирующий - это разве не к операционке относится? LwIP может и без нее фигачить...

сейчас поглядел на UDP посылку, вызывая целую кучу функций одну за другой походу дела склеивает пакеты, добавляет заголовки, а потом правда пихает это все прямиком на выход. Как то я упустил этот момент, извиняюсь, правда обманул.

Другое дело что по ходу этих функций есть кучу мест на которых процесс может прерваться и оно все вывалиться, но вываливается оно с кодами ошибок и отладочными сообщениями. Даже последняя функция выдачи наружу тоже возвращает код ошибки.

Так что если send_UDP вернуло ок, то до драйвера сообщение дошло, и наверняка во все буферы (если они дальше есть) добавилось и до выхода дойдет.


Go to the top of the page
 
+Quote Post
megajohn
сообщение Dec 9 2013, 10:14
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



[quote name='Golikov A.' date='Dec 9 2013, 13:56' post='1217234']
> А вот с введением задержки перед функцией отправки, потери уменьшаются до 1 из 1000. Поток не меняется.
это как так: увеличили период отправки а поток не изменился ?

>блокирующий и не блокирующий - это разве не к операционке относится?
операционка задат лишь приоритет задач, и их переключение. А ждать завершения отправки по физическому каналу это уже другое

на пальцах:
*data_reg = 'a'; *data_reg = 'b';
или
*data_reg = 'a'; while( data_reg_busy() ); *DATA_REG = 'b'; while( data_reg_busy() );

это же элементарно, Ватсон. Единствено что в армах это индекс управляющей структуры


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Real_Bastard   LwIP факт отправки UDP пакета   Dec 9 2013, 00:10
- - scifi   Я бы проверял возвращаемое значение функции udp_se...   Dec 9 2013, 06:07
- - Golikov A.   факта отсылки пакета нет и быть не может. Единстве...   Dec 9 2013, 06:33
|- - scifi   Цитата(Golikov A. @ Dec 9 2013, 10:33) фа...   Dec 9 2013, 07:57
|- - TU-104   Цитата(scifi @ Dec 9 2013, 12:57) Неправд...   Apr 14 2016, 11:25
|- - kolobok0   Цитата(TU-104 @ Apr 14 2016, 14:25) ...   Apr 14 2016, 13:16
|- - scifi   Цитата(kolobok0 @ Apr 14 2016, 16:16) сог...   Apr 14 2016, 13:21
||- - kolobok0   Цитата(scifi @ Apr 14 2016, 16:21) ..Оста...   Apr 14 2016, 13:30
|- - TU-104   Цитата(kolobok0 @ Apr 14 2016, 18:16) сог...   Apr 15 2016, 05:06
|- - kolobok0   Цитата(TU-104 @ Apr 15 2016, 08:06) ...   Apr 15 2016, 08:49
- - Real_Bastard   Цитата(scifi @ Dec 9 2013, 10:07) Я бы пр...   Dec 9 2013, 08:53
|- - megajohn   "буферизируются или нет", это называются...   Dec 9 2013, 09:38
- - Real_Bastard   Ну приемное приложение у меня самописное и корявое...   Dec 9 2013, 09:53
|- - Golikov A.   Цитата(Real_Bastard @ Dec 9 2013, 13:53) ...   Dec 9 2013, 10:26
- - Real_Bastard   Цитата(megajohn @ Dec 9 2013, 14:14) ...   Dec 9 2013, 11:05
|- - megajohn   Цитата(Real_Bastard @ Dec 9 2013, 15:05) ...   Dec 9 2013, 12:04
- - Golikov A.   то есть задача стоит как ограничить свои данные на...   Dec 9 2013, 13:00
- - scifi   Цитата(megajohn @ Dec 9 2013, 13:38) ...   Dec 9 2013, 14:15
- - Real_Bastard   Запустил шарк. 45 000 пакетов принято. А счетчик п...   Dec 9 2013, 15:33
|- - scifi   Цитата(Real_Bastard @ Dec 9 2013, 19:33) ...   Dec 9 2013, 17:33
- - Real_Bastard   Цитата(scifi @ Dec 9 2013, 21:33) весьма ...   Dec 9 2013, 23:00
- - sergey sva   Если это видео может как то сжимать его перед отпр...   Dec 12 2013, 12:51
- - Real_Bastard   Цитата(sergey sva @ Dec 12 2013, 16:51) Е...   Dec 13 2013, 09:00


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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 00:16
Рейтинг@Mail.ru


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