搜索
 找回密码
 立即注册

简单一步 , 微信登陆

usb port的识别

作者:halleyhuang | 时间:2016-7-19 18:21:23 | 阅读:4213| 只看该作者
本帖最后由 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检查
收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评1

沙发#
bean.yang 发表于:2016-7-22 09:11:15
赞,终于解决了Mstar平台Ecos的缺陷
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版