su6666 发表于 2021-7-21 16:12:09

recv函数阻塞无法跳出

请教以下,我用的是FreeRTOS系统,植入BSD Socket,却一直阻塞在该recv函数,发送数据后也无法跳出,在BSD_RCVTOUT设置20ms的时间也没用。我把C/C++的,__RTX去掉,不进行阻塞,有时又可以跳出,并接收到数据,说明初始化没问题,实在搞不懂,请各位大神指教一下?

eric2013 发表于 2021-7-21 16:56:22

看你发的帖子是FreeRTOS-TCP分类,而你咨询的问题貌似是TCPnet。

如果你咨询的问题是TCPnet的话,请使用RTX版配套TCPnet,使用FreeRTOS有时候有些奇葩问题。方便排查问题。



su6666 发表于 2021-7-21 17:33:47

嗯!是那个文档,都跟据那个移植,他就是卡死在那,找个半天都是懵逼?有没有点提示。

su6666 发表于 2021-7-21 17:41:08

eric2013 发表于 2021-7-21 16:56
看你发的帖子是FreeRTOS-TCP分类,而你咨询的问题貌似是TCPnet。

如果你咨询的问题是TCPnet的话,请使用 ...

嗯!用的就是那个,有没有啥办法排查那种问题?

eric2013 发表于 2021-7-21 18:33:38

su6666 发表于 2021-7-21 17:41
嗯!用的就是那个,有没有啥办法排查那种问题?

跑我的原始例子正常吗

su6666 发表于 2021-7-22 10:44:43

eric2013 发表于 2021-7-21 18:33
跑我的原始例子正常吗

大佬没问题,跟你的区别可能就是版本号有点不一样,是不是这个原因?

eric2013 发表于 2021-7-22 14:18:37

su6666 发表于 2021-7-22 10:44
大佬没问题,跟你的区别可能就是版本号有点不一样,是不是这个原因?

你的用的那个版本的。

su6666 发表于 2021-7-22 14:33:55

eric2013 发表于 2021-7-22 14:18
你的用的那个版本的。

发现问题,版本没问题,Net_lib.c的
__used void bsd_resume (U8 tsk_id) {
/* Resume a task waiting for a socket event. */
//if (tsk_id) {
//    os_evt_set (0x8000, tsk_id);
                xSemaphoreGive(bsd_sem);
//}
}
那个if(tsk_id)没屏蔽

su6666 发表于 2021-7-22 14:34:22

eric2013 发表于 2021-7-21 18:33
跑我的原始例子正常吗

多谢大佬
页: [1]
查看完整版本: recv函数阻塞无法跳出