本帖最后由 halleyhuang 于 2016-7-19 18:22 编辑  
 
ECOS系统: 
     HB 区分usb  port 方法如下:      在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[1;33m""[NMGR][%s][%d] usb host is %ld \n \033[m", __FUNCTION__,__LINE__,_u8hostId);  
也就是调用MDrv_USB_MscLookupHostID 将 /dev/sda/ 传进来就可以得到是那个port 口。  
 
 
supernova: ls /sys/bus/usb/drivers/usb ls /sys/bus/usb/drivers/usb | grep -E '^[1-9]-[1-9](.[1-9])?' 
命令可以显示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检查  |