guest
驱动牛犊
驱动牛犊
  • 注册日期2001-06-12
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2001-09-05 01:25
[QUOTE]原本由 rayyang2000 发表
[B][QUOTE]原本由 sunkai 发表
[B][QUOTE]原本由 shb 发表
[B]这个NAK是由USB规范规定的,USB1。0规定一般是是重新请求3次,如果全部不成功,就会停止,它不会一直请求。 [/B][/QUOTE]

shb:
既然不成功就会停止倒也不算是坏事,但是现在我的情况是,不成功便成仁了,死翘翘的,只得重新启动机子,这是什么原因导致的?(用bulk方式传送时发生的) [/B][/QUOTE]
说明host给device发in的时候,device根本就没有准备好数据。你应该保证device在收到in token之前就已经准备好了数据。 [/B][/QUOTE]


班主,你说的也是,一个最后的成熟的设备是肯定会有数据供应的,但在开发阶段,也有的确没有数据供应的时候,一般都会碰到这种情况的。比如说,USB接口和设备分开做的时候,USB从主机供电,设备另备电源,当忘了给设备上电时,是无论如何没有数据来源的。如果这个时候去IN一把,就出现了我说的那个情况了,死了!当然这可以避免,但是还存在很多其他的原因能导致这个状况,一次次地重新启动机器急都急死了,最好是能解决根本问题,做到:我去IN,不是没有数据吗?行,没有就算了,正常返回,告诉我一个什么错误信息就是了,别死在里面。我想班主是个驱动高手,怎么解决这个问题?我用SOFTICE跟进去过,的确是进了死循环,汇编码我看不懂了。
有个哥们不是说过NAK3次就回来吗?怎么我就这么倒霉。BULK是保证数据的正确性,但也不能太较真啊。
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2001-09-05 21:37
[QUOTE]原本由 shb 发表
[B]这个NAK是由USB规范规定的,USB1。0规定一般是是重新请求3次,如果全部不成功,就会停止,它不会一直请求。 [/B][/QUOTE]

请求3次大概需要多长时间??



穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2001-09-06 09:25
给你的urb设置一个超时,比如1秒钟,让它过时不候。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
eric_ti
驱动牛犊
驱动牛犊
  • 注册日期2001-03-27
  • 最后登录2003-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2001-09-06 11:08
可能你的设备没有发出NAK信号,致使Event信号量没有被激活,你应当设一个Timeout机制,来防止Iocalldriver不成功时,driver死锁。
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2001-09-06 12:28
[QUOTE]原本由 rayyang2000 发表
[B]给你的urb设置一个超时,比如1秒钟,让它过时不候。 [/B][/QUOTE]

但我怎么超时后引起“Blue Screen of Death”。

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2001-09-07 18:34
[QUOTE]原本由 rayyang2000 发表
[B]给你的urb设置一个超时,比如1秒钟,让它过时不候。 [/B][/QUOTE]
我看到驱动程序里有个KeWaitSignalObject(),是在这里设置吗?多谢版主.
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2001-09-07 18:39
[QUOTE]原本由 eric_ti 发表
[B]可能你的设备没有发出NAK信号,致使Event信号量没有被激活,你应当设一个Timeout机制,来防止Iocalldriver不成功时,driver死锁。 [/B][/QUOTE]
这就不好玩了,发NAK是规范定的,不发是USB两端的设备的错,不是我能控制的,按道理说应该不会出现这种不可预料的情况吧?
我对驱动编程一知半解,能否具体给出点代码来?谢谢啦
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2001-09-09 00:39
大侠们,睡醒了发个话呀。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2001-09-10 10:03
[QUOTE]原本由 sunkai 发表
[B]大侠们,睡醒了发个话呀。 [/B][/QUOTE]
你这种情况,多数是firmware那头没有准备好数据。你们通讯的时序上可能有问题。
超时,就是弄个事件等待。具体的代码,你可以参考DriverWorks的源代码-KUSBLowerDevice::SubmitUrb
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2001-09-11 11:18
算了,终于回到了开始我说的,把设备和firmware搞清爽点,尽量不出任何错误,实在要死也没有法子,大不了再开机,正好休息片刻,闭目养神。*_*,:(.
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2001-10-03 03:55
我作了超时,可是更错了。请看后一个帖子。
各位想写驱动的朋友,如果只写bulk传输,也可以看看,这是最主要的部分,除了容错能力差了点,这个驱动倒没有什么不好的地方。
cpboy
驱动牛犊
驱动牛犊
  • 注册日期2001-09-04
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2002-10-31 14:29
好老的帖子,不知道有那位高手解决了,可以谈谈么?
欢迎讨论
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
32楼#
发布于:2005-03-07 08:57
顶上来~

继续讨论啊。


sunkai 的星星和帖子数真是一绝~
 :D
上一页 下一页
游客

返回顶部