У меня есть приложение 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);
}