zhangh002 发表于 2018-9-20 11:32:50

关于LWIP NETCONN_TCP服务器发送图片数据异常

我在FreeRTOS上建立了两个主要任务:一个是用于获取摄像头数据并存在内存中;另一个是判断摄像头数据获取完成后使用LWIP里面的netconn_write()函数发送出去。网络部分是参考原子哥的F767开发板上NETCONN 编程接口TCP服务器实验程序。我出现的问题是在程序输出图片数据开始是正常的,但运行一段时间之后(时间根据开辟的堆栈大小不同)网络线程部分执行到netconn_write()函数之后,就没有跳出来,而图像采集线程执行正常。目前怀疑网络线程内netconn_write()执行频率较高,导致输入的数据过多以致缓存或堆栈溢出出错。但我不清楚具体是什么原因应该怎样解决这个问题,不知道哪位朋友知道或遇到过这个问题,应该怎么解决?是不是有可以判断netconn_write()数据发送完毕的判断标志呢,希望可以得到大家的帮助,非常感谢!




bjflsk 发表于 2018-9-27 13:08:25

netconn_write()发送成功后会返回ERR_OK。
即使返回ERR_OK,好像也不代表服务器接收到数据,但可以判断发送过程正确。

程序错误也有可能是因为TCP连接断开。
可以尝试用
netconn_connect
netconn_write
netconn_close
...
...
...
方式测试。

还有就是程序中自己是否动态分配了内存,没有释放。

50031185 发表于 2018-9-27 20:39:48

你先试试 发送固定的 static 类型 数据,看看会不会出错,
如果没问题 就应该是动态内存分配出错了
页: [1]
查看完整版本: 关于LWIP NETCONN_TCP服务器发送图片数据异常