OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11678|回复: 29

UCOSIII+LWIP建立多个连接无法通信

[复制链接]

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
发表于 2016-8-3 16:39:48 | 显示全部楼层 |阅读模式
我使用的407的板子,上面移植了UCOSIII+LWIP,新建任务可以实现客户端和服务端任务并存,并能够进行数据通信,但是再增加一个客户端任务,数据就通信不了了。
PS:两个客户端同时通信正常,一个客户端和一个服务端同时存在通信也正常。只要在增加一个客户端通信就无法建立。或者三个客户端同时存在通信是错误、。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2017-3-3 17:16:34 | 显示全部楼层
shaozp 发表于 2017-3-3 17:15
是的 里面 配置的问题  你把上面的代码下载一下来 使用对比软件比较一下  看看配置的问题,时间长忘了   ...

问题解决了lwipopt.h 中增加这两个 定义  opt.h中定义的数字比较小。具体是为什么还在研究
#define MEMP_NUM_NETBUF         8
#define MEMP_NUM_NETCONN        12

可以参考FreeRTOS+LWIP TCP Server Socket多客户端连接问题
http://www.openedv.com/forum.php ... 1&fromuid=61773
(出处: OpenEdv-开源电子网)

就这个问题你可以看看
回复 支持 0 反对 1

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-6-30
在线时间
71 小时
发表于 2016-10-12 13:41:15 | 显示全部楼层
shaozp 发表于 2016-10-11 16:40
是怎么解决的 也不知道? 做项目最怕的就是这种莫名其妙的Bug,最好找到原因。可以的话你把你的代码也共 ...

代码改的稀巴烂,希望大家不要介意

BRL_Modbus_UCOSIII_LWIP.zip

2.7 MB, 下载次数: 1716

回复 支持 1 反对 0

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-8-3
在线时间
7 小时
发表于 2016-8-3 16:46:42 | 显示全部楼层
能不能把你移植好的那个发给我看下不《?我这边也是移植OK了,但是如果我建立好了TCP客户端,连续发送数据网络调试助手,时间长了之后就会出现Assertion "tcpip_thread: invalid message" failed at line 146 in ..\LWIP\lwip-1.4.1\src\api\tcpip.c 这个问题,还有可能线程就直接卡在send函数出,出不来了,设置超时也没用。
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-8-3
在线时间
7 小时
发表于 2016-8-3 16:47:35 | 显示全部楼层
如果可以的话,帮忙把你的移植好的源码发一份给我,发到邮箱13923742151@163.com
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-8-3 16:57:09 | 显示全部楼层
问题解决了lwipopt.h 中增加这两个 定义  opt.h中定义的数字比较小。具体是为什么还在研究
#define MEMP_NUM_NETBUF         8
#define MEMP_NUM_NETCONN        12

可以参考FreeRTOS+LWIP TCP Server Socket多客户端连接问题
http://www.openedv.com/forum.php ... 1&fromuid=61773
(出处: OpenEdv-开源电子网)
回复 支持 反对

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-8-3 17:59:46 | 显示全部楼层
起码把配置和异常打印的信息帖出来,这样怎么猜
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-8-4 10:43:19 | 显示全部楼层
测试通过的代码

UCOSIII_LWIP.rar

18.12 MB, 下载次数: 22380

回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-8-3
在线时间
7 小时
发表于 2016-8-4 11:17:22 | 显示全部楼层
有测试长时间连续发送或者接收么?
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-8-5 08:37:52 | 显示全部楼层
caihjf 发表于 2016-8-4 11:17
有测试长时间连续发送或者接收么?

会断开连接,正在查找问题。
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-8-3
在线时间
7 小时
发表于 2016-8-5 09:33:38 | 显示全部楼层
好像就像我说报的问题一样,两种情况,一,断开连接;二,报错tcpip thread unvalid message,
回复 支持 反对

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-6-30
在线时间
71 小时
发表于 2016-9-30 17:10:54 | 显示全部楼层
我用你的工程做测试发现长时间发送数据(时间大概在40分钟左右)之后TCP会断开连接,楼主可以留个联系方式交流下吗?
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-10-8 11:52:40 | 显示全部楼层
菜鸟。。。 发表于 2016-9-30 17:10
我用你的工程做测试发现长时间发送数据(时间大概在40分钟左右)之后TCP会断开连接,楼主可以留个联系方式 ...

断开的问题 我也没有解决掉,项目时间紧张就改用UCOSII +LWIP进行了!
回复 支持 反对

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-6-30
在线时间
71 小时
发表于 2016-10-8 14:55:04 | 显示全部楼层
shaozp 发表于 2016-10-8 11:52
断开的问题 我也没有解决掉,项目时间紧张就改用UCOSII +LWIP进行了!

好的,谢谢你
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-10-8 15:47:37 | 显示全部楼层

给你点建议  
1.UCOSIII 使用的消息机制,而UCOSII使用的是消息邮箱,这方面的移植我也是稀里糊涂,所以你仔细研究一下
2.你长时间测试通信不要使用网络调试助手,很多断开肯能是网络助手的原因,你直接使用电脑的ping功能 比如 ping -l 1470 192.168.0.36 -t  长时间测试一下。
3.然后就是在LWIP接收中断那边想办法打log,log不要太多。看看LWIP断开是发送断开还是接收断开的。
反正一步一步的来解决,

祝你好运!
回复 支持 反对

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-6-30
在线时间
71 小时
发表于 2016-10-11 15:39:06 | 显示全部楼层
shaozp 发表于 2016-10-8 15:47
给你点建议  
1.UCOSIII 使用的消息机制,而UCOSII使用的是消息邮箱,这方面的移植我也是稀里糊涂,所以 ...

谢谢,问题已经解决,现在程序运行非常稳定。但是对于之前造成不稳定的原因却无法理解
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-10-11 16:40:08 | 显示全部楼层
菜鸟。。。 发表于 2016-10-11 15:39
谢谢,问题已经解决,现在程序运行非常稳定。但是对于之前造成不稳定的原因却无法理解

是怎么解决的 也不知道? 做项目最怕的就是这种莫名其妙的Bug,最好找到原因。可以的话你把你的代码也共享一下!后面有人看到可以做参考!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-11-29
在线时间
8 小时
发表于 2016-12-1 17:17:34 | 显示全部楼层
你好,最近我也在做类似的TCP通信的东西server+client,能共享一份代码吗,邮箱:417777872@qq.com 谢谢!
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2016-12-6 16:11:15 | 显示全部楼层
hdh88717 发表于 2016-12-1 17:17
你好,最近我也在做类似的TCP通信的东西server+client,能共享一份代码吗,邮箱: 谢谢!

上边以及传了 自己下载一下。我这边网速不是很好。邮件上传很慢
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2016-7-28
在线时间
7 小时
发表于 2016-12-27 22:40:44 | 显示全部楼层
我也遇到多客户端连接问题,先标注一下,慢慢研究
回复 支持 反对

使用道具 举报

9

主题

209

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1358
金钱
1358
注册时间
2015-12-19
在线时间
108 小时
发表于 2017-1-13 16:32:40 | 显示全部楼层
我测试了一下6#的代码    问题依然存在啊   
求指导!!!兄弟
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-5-29
在线时间
15 小时
发表于 2017-1-14 13:10:05 | 显示全部楼层
大家好   我这边也是出现了运行了一段时间会挂掉的情况     用ucprobe软件抓到的现象是   tcp_thread任务处于  ready状态   但就是不产生对其调度  10#情况应该是类似的
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-5-29
在线时间
15 小时
发表于 2017-1-14 19:07:52 | 显示全部楼层
QQ截图20170114190122.jpg QQ截图20170114190409.jpg

我把其他任务都关了  就留了tcp_thread任务   上图是出问题时  任务的运行情况,   tcp_thread一直是ready  但就是不执行,
下图是正常运行时的样子   

  一般就是运行个几十分钟就不正常了   没有其他任何操作  就是放着运行一段时间  ,   运行正常的时间也没个规律  有时候长  有时候短
回复 支持 反对

使用道具 举报

8

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-8-3
在线时间
29 小时
发表于 2017-2-21 09:25:36 | 显示全部楼层
shaozp 发表于 2016-10-8 11:52
断开的问题 我也没有解决掉,项目时间紧张就改用UCOSII +LWIP进行了!

您好我也是用的UCOSII+LWIP 的NETCONN接口,发现服务器和客户端线程单独运行的时候没问题,可以同时并存服务器就无法接受链接,参考的是原子的TCP NETCONN Client和Server。请问您有遇到这种情况嘛?
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4493
金钱
4493
注册时间
2016-8-2
在线时间
51 小时
 楼主| 发表于 2017-3-3 17:15:46 | 显示全部楼层
45度斜向上 发表于 2017-2-21 09:25
您好我也是用的UCOSII+LWIP 的NETCONN接口,发现服务器和客户端线程单独运行的时候没问题,可以同时并存 ...

是的 里面 配置的问题  你把上面的代码下载一下来 使用对比软件比较一下  看看配置的问题,时间长忘了  不过当时确实是遇到过这个问题
回复 支持 反对

使用道具 举报

HenryLiang 该用户已被删除
发表于 2017-4-16 08:45:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2016-3-9
在线时间
4 小时
发表于 2020-5-29 15:25:23 | 显示全部楼层
wen448191786 发表于 2017-1-14 19:07
我把其他任务都关了  就留了tcp_thread任务   上图是出问题时  任务的运行情况,   tcp_thread一直是re ...

你这软件是什么,挺牛的
回复 支持 反对

使用道具 举报

2

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2017-7-21
在线时间
96 小时
发表于 2020-6-2 11:13:21 | 显示全部楼层
shaozp 发表于 2016-8-4 10:43
测试通过的代码

.\Output\Update.axf: Error: L6218E: Undefined symbol CPU_SR_Restore (referred from lwip_comm.o).
.\Output\Update.axf: Error: L6218E: Undefined symbol CPU_SR_Save (referred from lwip_comm.o).
.\Output\Update.axf: Error: L6218E: Undefined symbol CPU_TS_TmrFreqSet (referred from bsp.o).
.\Output\Update.axf: Error: L6218E: Undefined symbol CPU_CntLeadZeros (referred from os_prio.o).
移植出错,这是什么原因呀?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2017-7-21
在线时间
96 小时
发表于 2020-6-2 16:31:40 | 显示全部楼层
rui9527 发表于 2020-6-2 11:13
.\Output%update.axf: Error: L6218E: Undefined symbol CPU_SR_Restore (referred from lwip_comm.o).
...

忘记添加uc-CPU的文件了
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-9-9
在线时间
3 小时
发表于 2020-7-2 10:34:47 | 显示全部楼层
不错。好用谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 15:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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