OpenEdv-开源电子网

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

有人遇到过使用LWIP1.4.1长时间发送数据时,速率会降下来的现象么?怎么解决的??

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2019-10-21
在线时间
22 小时
发表于 2021-3-12 08:54:44 | 显示全部楼层 |阅读模式
最近在使用STM32F407调试LWIP1.4.1时,板子作为网络的服务端,PC的上位机做为客户端。用的是原子的例程无操作系统的LWIP TCP_SERVER的例程做了稍微的修改。长时间的往板子长时间的往客户端发送数据,一开始传输速率有150多KByte/s的速率,长时间后就只有十几KByte的速率了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2012-10-21
在线时间
11 小时
发表于 2021-3-18 17:33:03 | 显示全部楼层
是不是ping还会丢包,断电重启一下又好了,好像是任务中要清哪个堆栈,具体忘了
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2019-10-21
在线时间
22 小时
 楼主| 发表于 2021-4-8 15:09:55 | 显示全部楼层
raywang 发表于 2021-3-18 17:33
是不是ping还会丢包,断电重启一下又好了,好像是任务中要清哪个堆栈,具体忘了

对的,频繁调用那个TCP_write和TCP_output,还会报错
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2017-4-15
在线时间
12 小时
发表于 2021-4-12 10:23:59 | 显示全部楼层
布吉稻 发表于 2021-4-8 15:09
对的,频繁调用那个TCP_write和TCP_output,还会报错

你好楼主,我也遇到问题,有点相似。您可以帮忙给点建议么?那个清堆栈,这个您怎么样了?现在可以了嘛?我q 809485914 可以沟通一下么、谢谢!
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2017-4-15
在线时间
12 小时
发表于 2021-4-12 10:24:28 | 显示全部楼层
布吉稻 发表于 2021-4-8 15:09
对的,频繁调用那个TCP_write和TCP_output,还会报错

http://www.openedv.com/forum.php ... &extra=page%3D1
这个是我的帖子
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2017-4-15
在线时间
12 小时
发表于 2021-4-12 15:13:29 | 显示全部楼层
楼主您还在吗?
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2019-10-21
在线时间
22 小时
 楼主| 发表于 2021-12-9 13:29:32 | 显示全部楼层

在的,后面找到问题了,忘记上来结贴了。原因好像是频繁的往发数据时,客户端回的包有时可能并不是一个,运行得越久积累得越多,到最后缓存不足了就卡了,解决方法修改一下下面这个函数:
err_t ethernetif_input(struct netif *netif)
{
    err_t err;
    struct pbuf *p;
    while(1)
    {
        p=low_level_input(netif);   //调用low_level_input函数接收数据
        if(p==NULL)
        {
            return ERR_MEM;
        }
        err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包
        if(err!=ERR_OK)
        {
            LWIP_DEBUGF(NETIF_DEBUG,("ethernetif_input: IP input error\n"));
            pbuf_free(p);
            p = NULL;
        }
    }
}
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-5-29 08:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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