zampple
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1797回复:10

读取设备描述符的问题

楼主#
更多 发布于:2005-04-23 19:45
今天碰到一个问题:
大家知道一个设备描述符共有18个字节,
但我的一个U盘端点0最大包大小只有8个字节。
那后面的几个字节怎么让它输出呢?
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-04-24 11:47
系统会先读8个,,再读8个。。最后读2个。。

酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-04-24 11:52
你给足够大的buffer就可以了。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
zampple
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-24 14:46
系统?
现在我要做所有的事情,包括这个系统和底层驱动。
所以不知道别的系统怎么做的?
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-04-24 17:02
系统?
现在我要做所有的事情,包括这个系统和底层驱动。
所以不知道别的系统怎么做的?


你要做USB总线驱动与主机控制器驱动吗?

我说的系统是操作系统,,,他提供了USB总线驱动与主机控制器驱动。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-04-24 17:04
你要是作个U盘驱动 的话,,没有必要做那些工作了。。

写个用户驱动,,就可以了。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
zampple
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-24 17:48
就是ohc控制器驱动
zampple
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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干嘛用的?
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-04-24 18:38
那东西,,咱没有弄过了,,呵呵,,

主机怎么实现的,不是很清楚了,,应该是通过三个读事务完成的吧

。。。分别读的字节数为8,8,2
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-24 19:12
如果你写的驱动是最底层的驱动
那么在读了8个字节数据后再启动一个读取8个字节数据的命令
之后再读2个字节
这样你就能获得全部的描述符,你不需要知道硬件是怎么做的
如果你做的不是最低层的驱动,那我就不知道了。
zampple
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-24 20:47
有时间我再试试
游客

返回顶部