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