基于Freertos的应用程序花费太长时间才能上手

时间:2018-11-26 03:55:02

标签: freertos nucleo

我有一个FreeRTOS应用程序, 打开UDP套接字并传输数据包并接收响应。我使用了socket.c和W5100.c iomedia库文件来构建带有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);
}

0 个答案:

没有答案