版主: 51FPGA

分享到:
共5条 1/1 1   

求助:DDR接收数据不完整

    [您是本帖的第1285位阅读者]
zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

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


关键词:zedboard     usb    DDR    

RE: 求助:DDR接收数据不完整

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

2# 发表于 2014-07-23 07:54:18

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

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

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

RE: 求助:DDR接收数据不完整

zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

3# 发表于 2014-07-24 14:34:58
bluecd的原帖

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

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

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


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

RE: 求助:DDR接收数据不完整

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

4# 发表于 2014-07-25 07:51:49
bluecd的原帖

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

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

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

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

linux还是裸奔?

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

RE: 求助:DDR接收数据不完整

zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

5# 发表于 2014-07-25 10:54:17
bluecd的原帖

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

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

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

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

linux还是裸奔?

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


裸跑的,缓存大小是调整的端点1(端点1设置为bulk传输)的buffer,可以设置为512字节,最大2048字节。
共5条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]