硬汉嵌入式论坛

 找回密码
 立即注册
查看: 609|回复: 1
收起左侧

[LwIP] 【请教】关于lwip在F429上运行,发送超时卡死问题

[复制链接]

4

主题

6

回帖

18

积分

新手上路

积分
18
发表于 2022-6-21 14:55:46 | 显示全部楼层 |阅读模式

硬汉哥及各位坛友,您们好。
1、LWIP协议栈在netconn_connect连接时设置了发送超时.
        tcp_netconn[conn_id]->recv_timeout = 2000;
        tcp_netconn[conn_id]->send_timeout = 2000;


2、在调用tcp_netconn函数时,就会发送不成功,返回 data illegal。
   //二值信号量,进行临界保护   
    xSemaphoreTake(xSemaphore[conn_id], portMAX_DELAY);
    //netconn_write在非阻塞发送时,返回Illegal value
    ret = netconn_write(tcp_netconn[conn_id], (const unsigned char*)buf, len, NETCONN_COPY);
    xSemaphoreGive(xSemaphore[conn_id]);

3)解决方案:将发送超时取消掉,即LWIP_SO_SNDTIMEO=0.就好了。
#define LWIP_SO_SNDTIMEO                0


4)问题:
为什么发送设值超时就会出现错误。如果不加超时,后续工程化会不会有影响,比如因阻塞导致程序卡死。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-6-21 18:31:27 | 显示全部楼层
简单玩了下,可以。

image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 05:54 , Processed in 0.155657 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表