uboot代码移植了usb驱动,但找不到usb设备,usb灯不亮,请问这是怎么回事?有没有人遇见过?
谢谢!
------解决方案--------------------
驱动没移植好啊
------解决方案--------------------
你确定硬件连接是好的?建议先把USB的电源一直给上,然后检查下你的U盘格式对不对,是不是FAT的
------解决方案--------------------
执行usb start,输出是什么?
------解决方案--------------------
USB等都没亮,就有可能外围电源没给上,具体说来就是VBUS那根线
------解决方案--------------------
我没看过UBOOT里面的相关代码。我这边的一般做法是无论有没有U盘,都给VBUS供电
------解决方案--------------------
看看你自己硬件的原理图,看usb slave的使能管脚有没有给使能信号
------解决方案--------------------
usb_get_descriptor() 读取usb设备的描述符失败
- C/C++ code
usb_get_configuration() --> usb_get_descriptor()usb_get_device_descriptor() --> usb_get_descriptor()/usr/src/linux-2.6.21.5/drivers/usb/core/message.c读取usb设备dev的描述符(具体描述符类型由参数type决定), 并将读取的描述符信息保存于buf所指的空间中设备中的描述符(type):#define USB_DT_DEVICE 0x01 设备描述符#define USB_DT_CONFIG 0x02 配置描述符#define USB_DT_STRING 0x03 字符描述符 #define USB_DT_INTERFACE 0x04 接口描述符#define USB_DT_ENDPOINT 0x05 端口描述符#define USB_DT_DEVICE_QUALIFIER 0x06#define USB_DT_OTHER_SPEED_CONFIG 0x07#define USB_DT_INTERFACE_POWER 0x08-------------------------int usb_get_descriptor( struct usb_device *dev, unsigned char type, //主机要求获取数据的类型 (设备描述符; 接口描述符; 配置描述符) unsigned char index,//描述符的索引号 void *buf, //获取数据的存放位置 int size) //获取数据的大小{ int i; int result; memset(buf,0,size); for (i = 0; i < 3; ++i) { result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, (type << 8) + index, 0, buf, size, USB_CTRL_GET_TIMEOUT); if (result == 0 || result == -EPIPE) continue; if (result > 1 && ((u8 *)buf)[1] != type) { result = -EPROTO; continue; } break; } return result;}
------解决方案--------------------
看下 到 Linux系统下 能不能认出来 先确保硬件是好的 在到u-boot下 量下D+信号有没有