硬汉嵌入式论坛

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

[有问必答] 采用V5-stm32F407 中RTX 系统中 V5-1030_RL-TCPnet(RTX)工作在非阻塞模式下异常情况

[复制链接]

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2020-11-16 15:39:52 | 显示全部楼层 |阅读模式
   采用 V5-1030_RL-TCPnet(RTX)的例程,长时间工作在非阻塞模式下。会出现 AppTaskTCPMain任务一直在running状态,其他任务被挂起。跪求坛主,帮忙分析下,是哪里性能出了问题吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-11-16 16:39:01 | 显示全部楼层
你在这个貌似是工作异常了,PHY芯片用的那款
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-16 17:01:28 | 显示全部楼层
eric2013 发表于 2020-11-16 16:39
你在这个貌似是工作异常了,PHY芯片用的那款

DM9161AEP 1939NS 就是板子上的芯片
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-16 17:02:26 | 显示全部楼层
eric2013 发表于 2020-11-16 16:39
你在这个貌似是工作异常了,PHY芯片用的那款

我在扣扣上也问你了,方便我截图或者,发下我修改的地方给你看下
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-11-17 00:36:28 | 显示全部楼层
LIU_LIN20 发表于 2020-11-16 17:02
我在扣扣上也问你了,方便我截图或者,发下我修改的地方给你看下

可以的,直接发到论坛此贴就行
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-18 09:17:35 | 显示全部楼层
eric2013 发表于 2020-11-17 00:36
可以的,直接发到论坛此贴就行

我上位机发送间隔比较快,6ms 发一包数据,然后407作为MCU下位机,收到立刻回一包数据,或者两个包数据。TCPnetTest(void)中加入一个 while(条件){ 发送数据}。这个while我测过不会死。坛主您方便加下扣扣不,我加你了。截图给你看,我现在等级低,这个上截不了图
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-11-18 11:38:16 | 显示全部楼层
LIU_LIN20 发表于 2020-11-18 09:17
我上位机发送间隔比较快,6ms 发一包数据,然后407作为MCU下位机,收到立刻回一包数据,或者两个包数据。 ...

有基于我们开发板的测试吗,在我的原始例子上加入,我可以帮你测试下。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-18 16:26:51 | 显示全部楼层
eric2013 发表于 2020-11-18 11:38
有基于我们开发板的测试吗,在我的原始例子上加入,我可以帮你测试下。

有的,我就在在原始例子上改的。用原始例子测试就有问题,您可以改成非阻塞情况测试下。例程V5-1030_RL-TCPnet实验_高效的事件触发框架(RTX)。收到一包,调用send (sock, (char *)sendbuf, 10, 1)两次,要长时间跑,最少4-5个小时
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-18 16:28:07 | 显示全部楼层
eric2013 发表于 2020-11-18 11:38
有基于我们开发板的测试吗,在我的原始例子上加入,我可以帮你测试下。

非阻塞情况         res = recv (sock, dbuf, sizeof(dbuf), 1);
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-11-18 16:37:54 | 显示全部楼层
LIU_LIN20 发表于 2020-11-18 16:28
非阻塞情况         res = recv (sock, dbuf, sizeof(dbuf), 1);

搞了半天一直没有听明白你说的非阻塞是啥,原来是说的是BSD Socket的非阻塞方式啊。。。

我做的这个例子框架不可以用于非阻塞。。。
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-18 16:47:56 | 显示全部楼层
eric2013 发表于 2020-11-18 16:37
搞了半天一直没有听明白你说的非阻塞是啥,原来是说的是BSD Socket的非阻塞方式啊。。。

我做的这个例 ...

........,必须用阻塞模式是吧
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2020-11-18 16:50:26 | 显示全部楼层
eric2013 发表于 2020-11-18 16:37
搞了半天一直没有听明白你说的非阻塞是啥,原来是说的是BSD Socket的非阻塞方式啊。。。

我做的这个例 ...

好的,谢谢。因为我改成的非阻塞,所以长时间有问题。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-11-19 09:15:42 | 显示全部楼层
LIU_LIN20 发表于 2020-11-18 16:47
........,必须用阻塞模式是吧

要自己写个非阻塞方式的实现框架。

我自己倒是很少用非阻塞方式。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 15:20 , Processed in 0.053210 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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