uskms 0 17 ноября, 2012 Опубликовано 17 ноября, 2012 · Жалоба Использую пример http-сервера на сокетах, при этом приходится ждать около 20 секунд пока контроллер пошлёт запрошенные данные. Т.е. по сути задержка в tcp. Пинг идет стабильно, среднее время пинга 1 мс. Может быть кто-нибудь сталкивался и с чем вообще это может быть связано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uskms 0 17 ноября, 2012 Опубликовано 17 ноября, 2012 (изменено) · Жалоба Подвисает как раз в функции приёма данных из потока 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 } } Изменено 17 ноября, 2012 пользователем IgorKossak [codebox] для длинного кода!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uskms 0 18 ноября, 2012 Опубликовано 18 ноября, 2012 · Жалоба Всё, кажется разобрался. Прблема была в плохой разводке. Пакеты с TCP длиннее, чем с ICMP, поэтому приходили с ошибками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
athlon64 0 26 ноября, 2012 Опубликовано 26 ноября, 2012 · Жалоба У этого примера от ST несколько проблем, по которым есть информация в форуме. В вашем случае скорее всего теряются пакеты из-за косяков в порте Lwip для FreeRTOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться