阅读:1556回复:4
都是固件惹的祸
大家好:
我用DS2.0写的Ezusb2131QC的驱动一直都工作的很好,可是昨天写固件那家伙冒出一奇怪的想法: 他在Firmware里面先disconnect,再Renumeration。 把这个固件下载到片子里面Run后,应用程序再也无法和设备联系了。在2000下,这个设备也就“光荣地”戴上感叹号了!! 但是,用Cypress 提供的驱动(GPD)就好使。 先谢了!! [fyshe 编辑于 2001-10-24 09:35] |
|
沙发#
发布于:2001-10-24 11:54
例子EZUSB工程的说明文件里说这是专门为替换Cypress驱动(GPD)做的,这样说来应该没有什么差异才对。我曾经试验过,除了也出现你上一个帖子写的“Remove Device Warning”外,功能上好象都一样,但我不敢说完全一样。谢谢你,我唯一的驱动问题让你解决了!
技术资料上讲,EZUSB再枚举的物理过程的确是断了再连上,用软件模拟的方法来控制硬件实现的。究竟是怎么回事呢?要是你清楚就好了,我就又少了一个疑问。:) |
|
板凳#
发布于:2001-10-24 11:31
诚然,DS2.0里有个例子叫EZUSB。但是我一用这个例子生成的驱动,
一插上设备,立即蓝屏。 以前的固件很简单,利用BULK方式,EP2IN/EP2OUT。上位机,给一个指令,设备发送一大堆数据。 现在是他在固件里边作了一个断开再枚举的过程: 只要下载固件,start 8051,这时候8051就会使设备自行断开一下,再联上去。这些可能是通过8051设置某些寄存器来实现的,具体情况我也不明白。 另外,我用SoftICE跟踪了一下, 发现我的驱动在设备插入过程中(OnStartDevice())出现“Failed to open pipe object”,但是你可照常使用。 一旦下载它的那个烂固件,这个过程跟重新插入设备一样,在OnStartDevice())出现“Could not locate the interface”!! 奇怪也哉!!! 我也正在跟踪之,请大家关照,BOW~~ |
|
地板#
发布于:2001-10-24 11:14
DS2.0里有个例子叫EZUSB,请问能不能直接用?你写的驱动和这个例子有什么主要不同的地方?请多多指教。
|
|
地下室#
发布于:2001-10-24 11:10
[QUOTE]原本由 fyshe 发表
[B]他在Firmware里面先disconnect,再Renumeration。 [/B][/QUOTE] 请问fyshe:原来是怎么做的?先Renumeration,再disconnect?这个原理我不是很清楚,请您解释一下好吗? |
|