halleyhuang 发表于 2016-7-19 18:21:23

usb port的识别

本帖最后由 halleyhuang 于 2016-7-19 18:22 编辑

ECOS系统:
   HB 区分usbport 方法如下:   在usb callback 内 static void _SysInitUSBCallback(MS_U8 u8Event, MS_U32 u32Para, char* s){    HB_printf("USB Call Back Event %.2x Parameter %lx %s \n", u8Event, u32Para, s);    // Control USBInsertFlag    MS_U8 usbnum = 0xff;
    if (s == NULL || strlen(s) < 6) //s = "/dev/sdx/", at least should be "/dev/x"    {      HB_printf("[%s][%d]invalid mount device:%s\n", (s == NULL) ? "NULL" : s);      return ;    }    MS_U8 _u8hostId=0xff;    _u8hostId = MDrv_USB_MscLookupHostID(s);    printf("\033[%s][%d] usb host is %ld \n \033
也就是调用MDrv_USB_MscLookupHostID 将 /dev/sda/ 传进来就可以得到是那个port 口。


supernova:ls /sys/bus/usb/drivers/usbls /sys/bus/usb/drivers/usb | grep -E '^-(.)?'
命令可以显示u盘端口:
比如说:
插上u盘,在/sys/bus/usb/drivers/usb目录下会生成1-1文件夹
把u盘插入到另一个usb口,在/sys/bus/usb/drivers/usb目录下会生成2-1文件夹检测方法:
1.检查/dev/sda是否存在,存在即有u盘插入
2.读取/sys/bus/usb/drivers/usb下端口文件,如1-1,或者1-1.1,若存在,默认为第一个usb口,即显示usb1合格
2.读取/sys/bus/usb/drivers/usb下端口文件,如2-1,或者1-1.2,若存在,即显示usb2合格
/sys/bus/usb/drivers/usb/u盘:
/dev/sda1识别u盘:
/sys/bus/usb/drivers/usb/1-1
/sys/bus/usb/drivers/usb/2-1或者:
/sys/bus/usb/drivers/usb/1-1.1
/sys/bus/usb/drivers/usb/1-1.2
stat检查

bean.yang 发表于 2016-7-22 09:11:15

赞,终于解决了Mstar平台Ecos的缺陷
页: [1]
查看完整版本: usb port的识别