阅读:1190回复:3
请教大侠, wince平台下1161在枚举时出现的问题:(一, 平台: sitsung板, usb host 1161. os: wince 4.2 拿到一个在别人的平台上成功运行的1161的usb驱动, 移植到我的平台上. 做了以下操作: 1, 修改了物理和虚拟地址映射 2, 修改了中断信号和中断服务程序 3, 设置了pxa255对应的MSC的值. 大概为 0x7939. 其他操作和他的查不多. 二, 错误现象: 初始化成功.然后插入我的usb从设备(在他的平台上可以正常工作),在枚举的时候出问题. 具体调试信息如下: 4294793857 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::HubStatusChangeThread - port 1, change = 0x0001, status = 0x0301 4294793959 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::HubStatusChangeThread - device attached on port 1 4294793960 PID:43c4e7fe TID:3aff63e 0x83aff400: +CHub(Root tier 0)::AttachDevice - port = 1, fIsLowSpeed = 1 4294793961 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_OPENING_ENDPOINT0_PIPE, failures = 0 4294793962 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_USING_ADDRESS0, failures = 0 4294793963 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_RESET_AND_ENABLE_PORT, failures = 0 4294794026 PID:43c4e7fe TID:3aff63e 0x83aff400: CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_SET_ADDRESS, failures = 0 就是运行到了 CHub::AttachDevice函数中 if ( status == requestOK ) { WaitForSingleObject( m_hHubStatusChangeEvent, INFINITE ); 的这个地方,就停止了. 说明对从设备设置地址之后,1161的状态没有发现变化的. 三, 在枚举的过程中出现问题? 软件: 1161的驱动本身是正确的. 硬件: linux下面,1161也可以被正常使用. 硬件和软件之间的映射: 我改动的地方如果出错,也不应该在枚举这一个步骤吧? 有大侠做过的吗? 希望指点,非常感谢!! hxiaow@ele.pku.edu.cn |
|
论坛版主
|
沙发#
发布于:2005-04-06 14:14
在尽量多的地方设置调试信息,可能的话,包括打开mdd层或其他中间层的调试信息,
找找看是谁会将m_hHubStatusChangeEvent置为有效,为什么这里没设 |
|
板凳#
发布于:2005-04-06 21:48
已经搞定了!
是中断的那一根gpio属性的设置有问题. ft,害的我查了那么久的程序 :( 不过现在只能识别极少数的u盘,接着郁闷哪.... |
|
地板#
发布于:2005-04-11 15:41
wince 1161的驱动能够share一把吗?我要搞1160,porting到ohci太痛苦了
|
|