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

stm32f407 + freertos 7.2.0 & Lwip 1.3.2 - задержка в TCP

Использую пример http-сервера на сокетах, при этом приходится ждать около 20 секунд пока контроллер пошлёт запрошенные данные. Т.е. по сути задержка в tcp. Пинг идет стабильно, среднее время пинга 1 мс. Может быть кто-нибудь сталкивался и с чем вообще это может быть связано?

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


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

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

 

  
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
[codebox] для длинного кода!!!

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


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

Всё, кажется разобрался. Прблема была в плохой разводке. Пакеты с TCP длиннее, чем с ICMP, поэтому приходили с ошибками.

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


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

У этого примера от ST несколько проблем, по которым есть информация в форуме.

В вашем случае скорее всего теряются пакеты из-за косяков в порте Lwip для FreeRTOS.

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


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

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

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

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

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

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

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

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

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

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