|
我的开发板的USB (2.0和1.1)都只能部分识别,而且这个问题不是简单的在usb/storage/unusual_devs.h中添加对应USB存储设备的信息就能解决的.我开发版的USB接口芯片是PHILIPS的ISP1561,所用内核是linux-2.6.11的.
根据打印信息发现,主机HUB没出现问题,并且还成功获取了U盘的设备描述符.
以下是对内核中USB驱动代码的跟踪过程:
storage_probe --> usb_stor_acquire_resource --> usb_stor_control_tread --> us->proto_handler -->
usb_stor_transparemt_scsi_command -->usb_stor_invoke_transport --> us->transport --> usb_stor_Bulk_transport --> usb_stor_bulk_transfer_sg --> usb_stor_bulk_transfer_buf --> usb_stor_msg_common --> wait_for_completion .到此,已经进入了内核的核心层了,根据添加打印信息调试发现,执行了函数wait_for_completion后us->flags 这个表示出现不正常的值.
有USB方面的高手,就帮忙一起分析一下好吗
小弟我在这里先行谢过了! |
|