论坛» 企业专区» Xilinx

求助:DDR接收数据不完整

菜鸟
2014-07-09 11:25 1楼
使用usb从主机往zedboard发送一张图片(272*480),24bit BMP格式,图片大小为272*480*3 = 382.5k,debug调试发现,DDR中接收的数据不完整,大概只有188k的样子;经讨论分析,个人理解造成这种现象的原因是由于usb发送数据太快而开发板接收慢造成数据被覆盖,不知道这样理解是否准确,请朋友们帮忙分析,提供有效的解决办法。谢谢!
菜鸟
2014-07-23 07:54 2楼

USB发数据都是有握手的。如果下面来不及接收,会返回nak等信号。所以,感觉你的想法不正确。

如果需要验证,可以使用usb协议分析仪抓包看看。

至于具体原因,给出信息太少,无法判断。

菜鸟
2014-07-24 14:34 3楼
PC端应用程序我是用Qt实现的,根据打印信息可知,发送图片功能是正常的;设备端SDK里面debug调试的时候,发现usb驱动本身的接收数据的函数,每次只能接收512字节的数据,而且地址空间不改变,下一次接收的512字节把前面的覆盖掉。我设置了一个绝对地址为接收数据的起始地址,然后地址不断递增,这种情况下计算地址空间大概为188k。
菜鸟
2014-07-25 07:51 4楼

linux还是裸奔?

裸奔的话需要你自己处理好缓冲。

菜鸟
2014-07-25 10:54 5楼
裸跑的,缓存大小是调整的端点1(端点1设置为bulk传输)的buffer,可以设置为512字节,最大2048字节。
共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]