完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我自制PCB,STM32F407+4M SRAM+DP83848,运行LWIP+UCOS II,没有见面操作,只运行MODBusTCP+TCP Server,MODBusTCP PC客户端每200ms刷新一次数据,TCPServer每2S发送4880字节,TCPServer PC客户端每秒发送一次确认数据"ACK",运行20小时左右出现以下错误,但还能继续运行.数据刷新正常.
Assertion "tcp_write: valid queue length" failed at line 683 in ..LWIPlwip-1.4.1srccoretcp_out.c Assertion "pcb->snd_queuelen >= pbuf_clen(next->p)" failed at line 1020 in ..LWIPlwip-1.4.1srccoretcp_in.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c 运行4天左右出现以下错误,LWIP挂掉了,看门狗进行重启了 Assertion "pcb->snd_queuelen >= pbuf_clen(next->p)" failed at line 1020 in ..LWIPlwip-1.4.1srccoretcp_in.c Assertion "pbuf_free: p->ref > 0" failed at line 650 in ..LWIPlwip-1.4.1srccorepbuf.c Assertion "tcp_input: pcb->next != pcb (before cache)" failed at line 182 in ..LWIPlwip-1.4.1srccoretcp_in.c Assertion "tcp_input: pcb->next != pcb (after cache)" failed at line 188 in ..LWIPlwip-1.4.1srccoretcp_in.c 检查LWIP代码其中对pcb->snd_queuelen >= pbuf_clen(next->p)和 pcb->next != pcb (after cache)虽然有报错提示,但代码中并未对该异常进行纠错处理,仍然按照正常情况执行,这种情况下势必会最终导致崩溃,不知道为什么? 测试多次,历时一个月了,最长不超过5天,最短3天就出现重启,不知道问题在哪里?请大侠提供一点思路,谢谢了. |
|
相关推荐
8个回答
|
|
我现在放弃UCOS+LWIP组合了,因为没有时间去一点点调试了,我采用RTX + RL-TCPnet组合实现了,MDK提供很多RL-TCPnet中间件,目前已经很稳定了,连续1个月不会掉线,不会重启
|
|
|
|
在malloc和free的时候,禁止中断试试
|
|
|
|
谢谢,我试一下
|
|
|
|
mark!!!
|
|
|
|
不知楼主问题解决没有?
|
|
|
|
再次向你推荐Microchip TCPIP协议栈,我在项目中用,从来没有出过问题.
我在测试的时候,写了一个TCP回环测试助手,实现服务器,终端作为客户端,收到什么回什么. 终端上线后,服务器一次发送10K+的随机数,分段CRC效验,终端接收后原样回复,服务器效验数据,一直重复,连续测试超过一周,无数据错误,无掉线,无死机重启. |
|
|
|
谢谢,我学习学习,另外你用的什么系统我找了一下Microchip TCPIP协议栈应用资料,太少了,我这种水平很难移植,同时也没有时间用在项目上了
|
|
|
|
我用RTX,其实也不是很靠谱,4.7x版的有BUG,KEIL5中的是CMSIS-OS接口,但是时间片轮转的算法太槽了.
但是有一个好处,就是KEIL对RTX提供运行时监视支持,可以很方便的查看调用栈和线程状态,以及栈空间使用情况. 小心使用还是不错的. |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2316 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2059 浏览 5 评论
2750 浏览 3 评论
2518 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2459 浏览 4 评论
5641浏览 1评论
522浏览 0评论
524浏览 0评论
300浏览 0评论
128浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 13:34 , Processed in 1.033528 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号