Приложение на основе Freertos занимает слишком много времени, чтобы начать - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть приложение FreeRTOS, которое открывает сокет UDP и передает пакеты и получает ответ. Я использовал файлы библиотеки iomedia socket.c и W5100.c для создания этого приложения с экраном WHiznet EThernet.Теперь, когда я помещаю задержку задачи между запуском и передачей UDP-сокета первым пакетом, мое приложение работает нормально, но если я удаляю эту задержку задачи, то ни один пакет не получен на конце Сервера.Однако sendto по-прежнему возвращает правильную длину переданного пакета. Может кто-нибудь предложить какой-нибудь способ отладки приложения.

void vTaskCode( void * pvParameters )
{
   /* The parameter value is expected to be 1 as 1 is passed in the
   pvParameters value in the call to xTaskCreate() below.*/
   configASSERT( ( ( uint32_t ) pvParameters ) == 1 );
   vTaskDelay(20000/portTICK_PERIOD_MS); ***// If I remove this delay packet will never reach other machine.***
   socket(DHCP_SOCKET, Sn_MR_UDP, DHCP_CLIENT_PORT, 0x00);
   **// create the DHCP message here.** 
   sendto(DHCP_SOCKET, (uint8_t *)pDHCPMSG, RIP_MSG_SIZE, ip, DHCP_SERVER_PORT);
}
...