完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
查看下以太网数据包接收缓冲区的读写指针是否异常,注意不是LWIP的接收缓冲区
|
|
|
|
我用的是裸机,现在在测试呢,出问题有时候是一天,有时候是2天,后来我计算了一下,串口波特率是115200,也就是1秒钟最多发送或者接收14.4KB字节数据,我要发送1400字节则需要97.2ms,这是发送时间,还有个接受的时间呢,所以串口发送到以太网,再从以太网接收数据发送到川口,一共需要97.2X2=194.4ms,所以留给单片机的空闲时间理论上是200ms-194.4ms=5.6ms(因为我现在是没200ms发送一次数据,数据长度是1400字节),所以问题有没有可能是出现在这里,由于单片机的空闲时间可能会越来越紧张,最终造成接收缓冲区数据溢出而导致死机呢?
|
|
|
|
大部分程序跑飞的情况都是内存越界导致的,收发缓冲区的溢出检测这个肯定得做的,你现在要确认到底是程序跑飞了,还是网络接收出错了
|
|
|
|
替换了LWIP1.4.1仿真发现程序在tcp_output(struct tcp_pcb *pcb)的这个位置
/* useg should point to last segment on unacked queue */ useg = pcb->unacked; if (useg != NULL) { for (; useg->next != NULL; useg = useg->next); } |
|
|
|
TCP接收数据包一包是512个字节,我串口发送,做了防止内存溢出的判断,最多一次发送1460字节,多了的忽略
|
|
|
|
醉了。。
|
|
|
|
楼主,你这个是怎么处理的?我这边在长时间运行的情况下,经常数据发不出去
|
|
|
|
你可以试试改 lwipopts.h内的参数
|
|
|
|
已经没有问题了谢谢
|
|
|
|
已经处理好了
|
|
|
|
请问楼主是如何解决的?
|
|
|
|
裸机跑LWIP和加入操作系统后的LWIP,在注册网卡的时候有点不一样,裸机注册用的是RAW API,加入操作系统后,注册的就是适合操作系统用的API
|
|
|
|
你好,请问具体是哪个接口?我现在用的是RAW API,运行一段时间之后发现PBUF的内存池和PCB的内存池都被耗光了。我的硬件平台和LWIP版本和你的完全一致,通信测试也很像。能否指点一下,非常感谢
|
|
|
|
楼主最后是如何解决的呢?
|
|
|
|
寻找楼主……
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2363 浏览 5 评论
3209 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2787 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
664浏览 1评论
903浏览 0评论
1024浏览 0评论
667浏览 0评论
497浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:50 , Processed in 1.461824 second(s), Total 106, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号