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

 
 
> stm32f407 + freertos 7.2.0 & Lwip 1.3.2 - задержка в TCP
uskms
сообщение Nov 17 2012, 14:27
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 23-09-10
Пользователь №: 59 674



Использую пример http-сервера на сокетах, при этом приходится ждать около 20 секунд пока контроллер пошлёт запрошенные данные. Т.е. по сути задержка в tcp. Пинг идет стабильно, среднее время пинга 1 мс. Может быть кто-нибудь сталкивался и с чем вообще это может быть связано?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
uskms
сообщение Nov 17 2012, 16:44
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 23-09-10
Пользователь №: 59 674



Подвисает как раз в функции приёма данных из потока tcpip:

CODE

u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout)
{
void *dummyptr;
portTickType StartTime, EndTime, Elapsed;

StartTime = xTaskGetTickCount();

if ( msg == NULL )
{
msg = &dummyptr;
}

if ( timeout != 0 )
{
if ( pdTRUE == xQueueReceive( mbox, &(*msg), timeout / portTICK_RATE_MS ) )
{
EndTime = xTaskGetTickCount();
Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;

return ( Elapsed );
}
else // timed out blocking for message
{
*msg = NULL;

return SYS_ARCH_TIMEOUT;
}
}
else // block forever for a message.
{
while( pdTRUE != xQueueReceive( mbox, &(*msg), portMAX_DELAY ) ){} // time is arbitrary <- Вот здесь
EndTime = xTaskGetTickCount();
Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;

return ( Elapsed ); // return time blocked TODO test
}
}


Сообщение отредактировал IgorKossak - Nov 17 2012, 17:12
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post
uskms
сообщение Nov 18 2012, 11:21
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 23-09-10
Пользователь №: 59 674



Всё, кажется разобрался. Прблема была в плохой разводке. Пакеты с TCP длиннее, чем с ICMP, поэтому приходили с ошибками.
Go to the top of the page
 
+Quote Post
athlon64
сообщение Nov 26 2012, 08:05
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



У этого примера от ST несколько проблем, по которым есть информация в форуме.
В вашем случае скорее всего теряются пакеты из-за косяков в порте Lwip для FreeRTOS.


--------------------
Руслан
Go to the top of the page
 
+Quote Post

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

 


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


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