版块
论坛
喜欢
话题
应用
搜索
登录
注册
flycat0101的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=28776
请问一个比较简单的问题
在PC端的USB驱动中每次向USB设备写入数据时,每一个Write的最大数据量是多少?如果我在USB设备的固件中固定一个Buffer,用来接收每次的Write数据,接收完后才写入。我发现当数据很大时,比如几MB的数据,每次Write时,数据为64KB,请问一下,有没有比这更大的情...
全文
回复
(
7
)
2003-08-01 14:33
来自版块 -
USB驱动开发
◆
◆
表情
告诉我的粉丝
提 交
jinghuiren
:
哦,我说的是通用设备的情况,你也没说你做的是u盘呀!就当我前面的没说吧。
(2003-08-02 12:46)
回复
szzwm
:
既然你有一个64KB的缓冲,你大可不必担心HOST一次写出的数据会超过你的缓冲。如果真的出现这种情况的话,你在接收满64KB之后优先处理缓冲区里的数据,此时如果主机继续发送数据,固件可以响应NAK信号给主机,主机就会不断重复发送从64KB之后的数据了。当你的固件处理完缓冲区的数据...
(2003-08-02 00:33)
回复
flycat0101
:
一般不会大于64k的,不过我觉得这样的write事务对你固件方没有影响呀,因为即使是64k或者更多,主机每次的out事务中数据量还是一个包1.1是64,2.0是512,因此你固件中每次也就是读取这一个包而已,你不用管主机发多少个,只要你固件里能处理两个连续的包,那么就能处理更多个...
(2003-08-01 16:43)
回复
jinghuiren
:
一般不会大于64k的,不过我觉得这样的write事务对你固件方没有影响呀,因为即使是64k或者更多,主机每次的out事务中数据量还是一个包1.1是64,2.0是512,因此你固件中每次也就是读取这一个包而已,你不用管主机发多少个,只要你固件里能处理两个连续的包,那么就能处理更多个...
(2003-08-01 16:33)
回复
flycat0101
:
多谢 我现在不写PC端的驱动,我主要的问题是在设备固件里。 我想提高我固件的运行速度,在接收PC端的数据时开了一个64KB大小的固定buffer,我担心pc机在每个Write事务中会发送超过64KB的数据,这样的话,我的usb设备就会出现数据丢失的情况。请问一下,有没有超过6...
(2003-08-01 16:19)
回复
flytomoon
:
可以,可以把一次DECIVEIOCONTROL的数据大小改变,大小随你自己定,这样就可以实现你的要求了,你用的是68013的开发板吧?
(2003-08-01 15:13)
回复
jinghuiren
:
可以,但是你的在驱动例完成,把这些数据通过mdl传到驱动里,然后每次bulid一个64k的urb发动到底层驱动,循环进行,直到把数据传完返回!
(2003-08-01 14:46)
回复
flycat0101
加关注
写私信
0
关注
0
粉丝
196
帖子
返回顶部