阅读:1406回复:4
为什么一读D12就重启?
我用DS生成的driver,fireware用的是Zboard改的。但是只要使用了Read,读了EP2,计算机就重启了。
这是怎么回事呢? |
|
|
沙发#
发布于:2002-06-05 11:13
在USB中断到来时你的延时太长的原因导致的。你的固件程序中中断处理部分或许该简洁些。不知道你用的USB芯片是什么芯片。如果是PD12的话,则要满足下面的延时条件:
1、ALE脚从拉低到地址传送的时间不能超过10NS 2、RD-N脚从拉低到数据驱动的时间不能超过20NS 3、RD-N从拉高到数据HI-Z的时间不能超过20NS。 |
|
|
板凳#
发布于:2002-06-05 12:24
估计不是fireware的原因。
因为我在使用DS生成的驱动程序之前先用Windriver把USB设备打开一次,然后关掉windriver,再用DS的驱动就一切正常。 会不会是要先初始化下层的驱动? 造成重启的地方是submiturb。并且只在发送Read时才出问题。其它对EP0的控制一切正常。 |
|
|
地板#
发布于:2002-06-11 20:27
你的DS版本太高(DS2.5 & DS2.6 有BUG),可以试一下安装DS2.01正式版,把工程重建再试一下,绝对OK!
|
|
地下室#
发布于:2002-06-12 12:37
如果DS连这个小小的USB都解决不了,NeMega公司估计也活不了多久了吧.我试过DS2.01了,只能说不死机了,但是访问驱动的程序会死掉.而且2.01的驱动在加载时好像有问题.
我现在用的是2.6,在访问之前,先查找一下硬件就不会死机了. |
|
|