wince6.0下,usb hub上电前插入USB设备,启动后有时候无法识别

时间:2021-03-03 15:14:28
wince6.0下,usb hub上电前插入USB设备,启动后有时候无法识别,大概10%的机率出现
os:wince6.0,s3c6410,usb hub是GL850G,重新上电有时候无法识别usb 鼠标或者是u盘,
以前坛子里也讨论过,是wince5.0的,有个sleep就可以了,但在wince6.0应该是修补了bug了

哪位也遇到过?

之前也有人发过帖:
http://topic.csdn.net/u/20090916/10/6009396f-54a7-427e-90c0-f2723e58cf4f.html?seed=415955654&r=59851966#r_59851966

9 个解决方案

#1


 
调用reload

#2


看过usb hub的驱动,貌似每次插入设备的时候,系统才会一层层的调用驱动,是否可以从驱动处修改,每次系统启动之后,进行一次设备枚举呢?

#3


偶然的时候,还会出现
!!!CFunction( tier 2)::SetOrClearFeature timeout, somthing wrong, address = 4
Exception 'Data Abort' (4): Thread-Id=014f0006(pth=82182000), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=00400002(pprc=81769308) 'NK.EXE'
PC=c0ac9f74(s3c6410_ohci2.dll+0x00009f74) RA=c0ac9fa4(s3c6410_ohci2.dll+0x00009fa4) SP=d08bfe74, BVA=52099a00
Exception 'Data Abort' (4): Thread-Id=014c0006(pth=85c0945c), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=06330002(pprc=82538580) 'servicesd.exe'
PC=c0ac9f04(s3c6410_ohci2.dll+0x00009f04) RA=c0ac9ef0(s3c6410_ohci2.dll+0x00009ef0) SP=d083fe4c, BVA=520978a8

驱动中应该还有问题,但和原始的比较了一下,代码都一样,

#4



// Apply power to all root hub ports, and wait for good to go. 7.4.1 & 7.4.3
m_portBase->HcRhDescriptorA.NPS = 1;
m_portBase->HcRhStatus.reg= HcRegisters::HcRhStatus::LPSC;

Sleep(m_portBase->HcRhDescriptorA.POTPGT * 2);

// ... ...


我这是WinCE7,WinCE5的那个bug,应该是早已经修补过了。

不知道再加一些延时,会不会有什么效果。如:Sleep(10);

或者拉一下相应管脚,模拟一次USB插拔呢。帮顶了。

#5


Sleep(m_portBase->HcRhDescriptorA.POTPGT * 2);
这个已经在ce6.0上修补过了,

#6


延时再加长一点呢?或者再下面再加上一个Sleep(10);

#7


可能是电压不稳定 我的也经常这样 

#8


楼上提醒了,会不是硬件的问题,之前我们项目用U盘,也是偶尔会断开。

#9


有点神马,应该是硬件问题

#1


 
调用reload

#2


看过usb hub的驱动,貌似每次插入设备的时候,系统才会一层层的调用驱动,是否可以从驱动处修改,每次系统启动之后,进行一次设备枚举呢?

#3


偶然的时候,还会出现
!!!CFunction( tier 2)::SetOrClearFeature timeout, somthing wrong, address = 4
Exception 'Data Abort' (4): Thread-Id=014f0006(pth=82182000), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=00400002(pprc=81769308) 'NK.EXE'
PC=c0ac9f74(s3c6410_ohci2.dll+0x00009f74) RA=c0ac9fa4(s3c6410_ohci2.dll+0x00009fa4) SP=d08bfe74, BVA=52099a00
Exception 'Data Abort' (4): Thread-Id=014c0006(pth=85c0945c), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=06330002(pprc=82538580) 'servicesd.exe'
PC=c0ac9f04(s3c6410_ohci2.dll+0x00009f04) RA=c0ac9ef0(s3c6410_ohci2.dll+0x00009ef0) SP=d083fe4c, BVA=520978a8

驱动中应该还有问题,但和原始的比较了一下,代码都一样,

#4



// Apply power to all root hub ports, and wait for good to go. 7.4.1 & 7.4.3
m_portBase->HcRhDescriptorA.NPS = 1;
m_portBase->HcRhStatus.reg= HcRegisters::HcRhStatus::LPSC;

Sleep(m_portBase->HcRhDescriptorA.POTPGT * 2);

// ... ...


我这是WinCE7,WinCE5的那个bug,应该是早已经修补过了。

不知道再加一些延时,会不会有什么效果。如:Sleep(10);

或者拉一下相应管脚,模拟一次USB插拔呢。帮顶了。

#5


Sleep(m_portBase->HcRhDescriptorA.POTPGT * 2);
这个已经在ce6.0上修补过了,

#6


延时再加长一点呢?或者再下面再加上一个Sleep(10);

#7


可能是电压不稳定 我的也经常这样 

#8


楼上提醒了,会不是硬件的问题,之前我们项目用U盘,也是偶尔会断开。

#9


有点神马,应该是硬件问题