硬汉嵌入式论坛

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

[有问必答] RTX5下移植Lwip,采用中断的信号量的方式不好使,不知道哪里的问题

[复制链接]

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2024-5-28 18:09:05 | 显示全部楼层 |阅读模式
本帖最后由 jianghs 于 2024-5-28 18:11 编辑

最近用MDK5.39版本移植了LWIP,PHY是LAN8720,做了个简单的tcp sever回环测试,采用查询的方式没什么问题。后面看了硬汉的例子,采用中断的信号量的方式,也可以运行但是回环丢数据比较厉害?版主帮忙看看






00.JPG
0.JPG
1.JPG
2.JPG

Lan8720.rar

1.24 MB, 下载次数: 9

回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2024-5-28 18:20:10 | 显示全部楼层
这个程序有个很奇葩的现象:采用查询的方式下载程序,没有问题。然后把//#define PHY_POLL 注释掉改成#define PHY_EVENT 使能,编译下载也可以正常在信号量模式下运行,但是来了,如果板子复位或者断电再上电就不行了。真头疼,不知道什么原因。就算重新编译下载程序也不行。
回复

使用道具 举报

24

主题

365

回帖

437

积分

高级会员

积分
437
发表于 2024-5-28 19:12:49 | 显示全部楼层
初始化的时候MAX Value 为 1肯定不行啊,会丢掉很多事件。建议直接设置为0xFFFF
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2024-5-28 20:00:19 | 显示全部楼层
tovinz 发表于 2024-5-28 19:12
初始化的时候MAX Value 为 1肯定不行啊,会丢掉很多事件。建议直接设置为0xFFFF

有道理,我明天试试看
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2024-5-29 08:31:10 | 显示全部楼层
tovinz 发表于 2024-5-28 19:12
初始化的时候MAX Value 为 1肯定不行啊,会丢掉很多事件。建议直接设置为0xFFFF

谢谢支持,您的方法是正确的,我把max_count的值改大就好了。
sid_Thread_Semaphore = osSemaphoreNew(100, 0, NULL);
回复

使用道具 举报

24

主题

365

回帖

437

积分

高级会员

积分
437
发表于 2024-5-29 09:50:33 | 显示全部楼层
本帖最后由 tovinz 于 2024-5-29 09:56 编辑
jianghs 发表于 2024-5-29 08:31
谢谢支持,您的方法是正确的,我把max_count的值改大就好了。
sid_Thread_Semaphore = osSemaphoreNew(1 ...
貌似还有改进空间,
semaph wait 的超时时间可以设置为10或者20或者自己觉得合适的值,不要设置为死等。
然后即便就是超时了也执行 ethernetif_input(netif),这样就算丢失了一些事件,也可以通过这种非死等的超时轮询到。
仅个人经验,不一定行


微信截图_20240529095548.png
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2024-8-12 10:24:57 | 显示全部楼层
来学习学习
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 02:56 , Processed in 0.044430 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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