阅读:1797回复:10
读取设备描述符的问题
今天碰到一个问题:
大家知道一个设备描述符共有18个字节, 但我的一个U盘端点0最大包大小只有8个字节。 那后面的几个字节怎么让它输出呢? |
|
沙发#
发布于:2005-04-24 11:47
系统会先读8个,,再读8个。。最后读2个。。
|
|
|
板凳#
发布于:2005-04-24 11:52
你给足够大的buffer就可以了。。。
|
|
|
地板#
发布于:2005-04-24 14:46
系统?
现在我要做所有的事情,包括这个系统和底层驱动。 所以不知道别的系统怎么做的? |
|
地下室#
发布于:2005-04-24 17:02
系统? 你要做USB总线驱动与主机控制器驱动吗? 我说的系统是操作系统,,,他提供了USB总线驱动与主机控制器驱动。。 |
|
|
5楼#
发布于:2005-04-24 17:04
你要是作个U盘驱动 的话,,没有必要做那些工作了。。
写个用户驱动,,就可以了。。 |
|
|
6楼#
发布于:2005-04-24 17:48
就是ohc控制器驱动
|
|
7楼#
发布于:2005-04-24 17:52
一个GET_DESCRIPTOR命令获得设备描述符如下
get_des.requesttype = 0x80; get_des.request = 6; get_des.value = swap_16(0x1<<8); get_des.index = 0; get_des.length = swap_16(0x12); 现在共需接收18个字节,但U盘只能发出前8个。 不知道怎么让他送出后面字节。不清楚index干嘛用的? |
|
8楼#
发布于:2005-04-24 18:38
那东西,,咱没有弄过了,,呵呵,,
主机怎么实现的,不是很清楚了,,应该是通过三个读事务完成的吧 。。。分别读的字节数为8,8,2 |
|
|
9楼#
发布于:2005-04-24 19:12
如果你写的驱动是最底层的驱动
那么在读了8个字节数据后再启动一个读取8个字节数据的命令 之后再读2个字节 这样你就能获得全部的描述符,你不需要知道硬件是怎么做的 如果你做的不是最低层的驱动,那我就不知道了。 |
|
10楼#
发布于:2005-04-24 20:47
有时间我再试试
|
|