野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14825|回复: 16

LWIP发送视频数据流的崩溃bug问题!

[复制链接]
发表于 2016-9-2 15:42:23 | 显示全部楼层 |阅读模式
工程是基于STM32F429挑战者新的核心板。。。板子提供了wifi例程可以把ov2640摄像头采集的数据用wifi模块传出在上位机软件上显示
本人最近在捣鼓以太网模块,需要将摄像头采集的视频传到上位机,wifi例程硬件电路上需要wifi模块并配合路由器实现,还是基于庆科的MICO操作系统,对于小白的我来说好难。。。
无奈,只好硬着头皮看lwip例程,将wifi例程移植到lwip工程中去,昨天终于可以传输数据了,可是报错,上位机出现bug
LWIP通过串口报错如下:
Assertion"unsent_oversize mismatch(pcb vs.last_unsent)" failed at line 444 in..\LWIP\lwip-1.4.1\src\core\tcp_out.c
这涉及到LWIP的底层啊,不知道怎么改。

回复

使用道具 举报

 楼主| 发表于 2016-9-2 15:54:32 | 显示全部楼层
终于找到了解决方法,从LWIP的论坛上找到的,网址如下http://savannah.nongnu.org/bugs/?36380
原来LWIP1.4.1版本有bug,竟然被我碰到了!!!!关于bug的修改,论坛也提供了补丁http://savannah.nongnu.org/patch ... tem_id=8237#options
补丁中修改了tcp_out.c文件中的tcp_rexmit_rto(struct tcp_pcb *pcb)函数
diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c
index b9fc339..524416e 100644
--- a/src/core/tcp_out.c
+++ b/src/core/tcp_out.c
@@ -1261,11 +1261,21 @@ tcp_rexmit_rto(struct tcp_pcb *pcb)
for (seg = pcb->unacked; seg->next != NULL; seg = seg->next);
/* concatenate unsent queue after unacked queue */
seg->next = pcb->unsent;
+#if TCP_OVERSIZE
+ /* if last unsent changed, we need to update unsent_oversize */
+ if (pcb->unsent == NULL) {
+#if TCP_OVERSIZE_DBGCHECK
+ pcb->unsent_oversize = seg->oversize_left;
+#else
+ /* Punt on figuring this out since we always use TCP_OVERSIZE_DBGCHECK */
+#error "Without tcp_seg.oversize_left, how can unsent_oversize be updated?"
+#endif /* TCP_OVERSIZE_DBGCHECK */
+ }
+#endif /* TCP_OVERSIZE */
/* unsent queue is the concatenated queue (of unacked, unsent) */
pcb->unsent = pcb->unacked;
/* unacked queue is now empty */
pcb->unacked = NULL;
- /* last unsent hasn't changed, no need to reset unsent_oversize */
/* increment number of retransmissions */
++pcb->nrtx;
真是坑爹啊!!!
最近lwip有了2.0版本,然后我直接下载2.0版本把tcp_rexmit_rto(struct tcp_pcb *pcb)函数copy一下,然后编译下载,OK了,终于可以输出视频流了!!!
打算把工程用lwip2.0移植,1.4.1貌似bug不少
回复 支持 反对

使用道具 举报

发表于 2016-9-2 16:32:41 | 显示全部楼层
高手!我也想用手头的STM32F429开发板+摄像头通过以太网输出视频流到服务器端,但思路不清晰。能否介绍一下实现步骤和思路。需要使用lwip的哪个例程?如果方便,请加下我的QQ:19291997,后面有问题进一步交流,谢谢!!!
回复 支持 反对

使用道具 举报

发表于 2016-9-2 18:31:01 | 显示全部楼层
这么强!!!厉害
回复 支持 反对

使用道具 举报

发表于 2016-9-2 18:41:35 | 显示全部楼层
独自解决问题的能力很强,赞
回复 支持 反对

使用道具 举报

发表于 2016-9-2 22:39:04 | 显示全部楼层
lanyu3695 发表于 2016-9-2 15:54
终于找到了解决方法,从LWIP的论坛上找到的,网址如下http://savannah.nongnu.org/bugs/?36380
原来LWIP1. ...

2.0的版本目前还是RC版,会不会不稳定呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-3 11:26:27 来自手机 | 显示全部楼层
zhlhappy 发表于 2016-9-2 16:32
高手!我也想用手头的STM32F429开发板+摄像头通过以太网输出视频流到服务器端,但思路不清晰。能否介绍一下 ...

我是基于lwi例程  9.NETCONN_udptcp_echo_server进行移植的,把wifi历程中的ov2640相关文件夹copy到工程中,然后将接受数据的函数部分屏蔽掉,改成发送数据就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-3 11:31:29 来自手机 | 显示全部楼层
♂荻夜 发表于 2016-9-2 22:39
2.0的版本目前还是RC版,会不会不稳定呢

不知道呀,打算试一下,不过2.0版本修复了1.4.1版本的不少漏洞
回复 支持 反对

使用道具 举报

发表于 2016-9-3 17:03:46 | 显示全部楼层
接收大数据应该没有问题吧,我用着还不错,发送大数据量没有试过,小数据量就10多个字节没有问题!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-5 08:15:31 来自手机 | 显示全部楼层
零度的亲吻 发表于 2016-9-3 17:03
接收大数据应该没有问题吧,我用着还不错,发送大数据量没有试过,小数据量就10多个字节没有问题!!!

本帖修复的就是LWIP就是在发送部分的bug,这导致发送大数据出错,接收应该没问题的。
回复 支持 反对

使用道具 举报

发表于 2016-9-5 09:47:44 | 显示全部楼层
lanyu3695 发表于 2016-9-5 08:15
本帖修复的就是LWIP就是在发送部分的bug,这导致发送大数据出错,接收应该没问题的。

嗯,好的!!!
回复 支持 反对

使用道具 举报

发表于 2016-9-15 14:09:48 | 显示全部楼层
高手,最近我也在搞这个,可是老是不成功,本人初学者,能否传一份你的代码参考下啊,万分感谢。beileifly314@126.com 谢谢啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-27 12:44:23 来自手机 | 显示全部楼层
这涉及到公司的利益,不能上传哦~你遇到问题咱们可以讨论~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-27 12:44:59 来自手机 | 显示全部楼层
beileifly 发表于 2016-9-15 14:09
高手,最近我也在搞这个,可是老是不成功,本人初学者,能否传一份你的代码参考下啊,万分感谢。 谢谢啦

这涉及到公司的利益,不能上传哦~你遇到问题咱们可以讨论~
回复 支持 反对

使用道具 举报

发表于 2016-10-10 15:53:07 来自手机 | 显示全部楼层
楼主,你传输是采用的wifi模块+lwip
回复 支持 反对

使用道具 举报

发表于 2016-10-10 15:54:00 来自手机 | 显示全部楼层
楼主,你传输是采用wifi模块+lwip实现的吗?还是换成了有线以太网?
回复 支持 反对

使用道具 举报

发表于 2017-4-16 19:53:57 | 显示全部楼层
lanyu3695 发表于 2016-9-2 15:54
终于找到了解决方法,从LWIP的论坛上找到的,网址如下http://savannah.nongnu.org/bugs/?36380
原来LWIP1. ...

你好,请问你把视频通过WIFI 传输到PC,有没有进行保存呢?我想把视频保存到本地,试了好多方法,都不行。我上位机用的是野火c#例程。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-28 14:43 , Processed in 0.033803 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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