当无线USB转换器TOS-WLink不支持你的USB设备,联系我定位后OTA最快

问:使用中,发现我的USB设备接入到TOS-WLink不能识别

:USB设备种类真挺多的,尤其厂商自定义的设备;直接旺旺联系我;我会远程协助分析解决

        TOS-WLink有OTA升级功能,定位问题、BUG解决后,升级一下就可以;

一般来说,按下面步骤:

1, 远程合作,抓TOS-WLink运行日志给到我,我来定位分析

         昨天有用户咨询,USB转串接入TOS-WLink是可以的,但是为什么他常用的USB工具设备接入了TOS-WLink,无线USB助手没有显示;

        分析原因,无线USB助手不显示设备插入,定位在枚举错误,抓取了日志发给我后发现,TOS-WLink运行枚举报的错误;类不支持:驱动driver是查表,对接口、端点进行资源分配,

[I/USB] Enumeration success, start loading class driver
[E/USB] do not support Class:0x00,Subclass:0x00,Protocl:0x00

        USB四层,设备,配置,接口,端点;有时候设备描述符有时候也会有类的说明,大多数时候描述是在接口中;

        USB Class定义,usb_def.h:

/* USB Device Classes */
#define USB_DEVICE_CLASS_RESERVED      0x00
#define USB_DEVICE_CLASS_AUDIO         0x01
#define USB_DEVICE_CLASS_CDC           0x02
#define USB_DEVICE_CLASS_HID           0x03
#define USB_DEVICE_CLASS_MONITOR       0x04
#define USB_DEVICE_CLASS_PHYSICAL      0x05
#define USB_DEVICE_CLASS_IMAGE         0x06
#define USB_DEVICE_CLASS_PRINTER       0x07
#define USB_DEVICE_CLASS_MASS_STORAGE  0x08
#define USB_DEVICE_CLASS_HUB           0x09
#define USB_DEVICE_CLASS_CDC_DATA      0x0a
#define USB_DEVICE_CLASS_SMART_CARD    0x0b
#define USB_DEVICE_CLASS_SECURITY      0x0d
#define USB_DEVICE_CLASS_VIDEO         0x0e
#define USB_DEVICE_CLASS_HEALTHCARE    0x0f
#define USB_DEVICE_CLASS_DIAG_DEVICE   0xdc
#define USB_DEVICE_CLASS_WIRELESS      0xe0
#define USB_DEVICE_CLASS_MISC          0xef
#define USB_DEVICE_CLASS_APP_SPECIFIC  0xfe
#define USB_DEVICE_CLASS_VEND_SPECIFIC 0xff

         本次问题出在了TOS-WLink代码对Class = 0不支持 ,宏显示是保留;一般来说厂商自己的设备比如CH340 USB转串, JLink,STLink这种都是Class = 0XFF,表示厂商自定义;

        类必须要解析,加载的驱动预处理函数和类特别函数不一样; 如  #USB_DEVICE_CLASS_MASS_STORAGE  0x08;这是大容量存储,U盘;对它TOS-WLink要按照BOT,SCSI协议进行预读取,U盘信息,LNA、BLOCK,容量大小等;

         定位到原因, 改写代码如下,增加reserved类支持:

CLASS_INFO_DEFINE const struct usbh_class_info class_info_reserved = {
        .match_flags = USB_CLASS_MATCH_INTF_CLASS,
        .class = 0x0,
        .subclass = 0x00,
        .protocol = 0x00,
        .vid = 0x00,
        .pid = 0x00,
        .class_driver = &reserved_class_driver
};

        编译后、会给出OTA固件,OTA升级测试验证,后面有新问题,如此循环;               

  2,  实在远程解决不了或者你没有时间抓日志

              也可以到付邮寄给我你的USB设备,我调通后给出OTA版本再寄回你的USB设备TOS-WLink不用寄,期间可以同步验证问题是否解决

              当然解决了,版本+1会更新到网盘;

总结:  USB设备种类蛮多的;有时候猜不到到、有些厂商不按套路出牌,哪怕是USB转串(CP210X,FT232,CH340/343, PL230X),这各个厂家做法都不同,所以我视频中说过,PL230X的包最干净,但是也说不出厂家这么做有什么问题;

                Linux源码 driver/usb, 同一USB的IP核,驱动作者也注释吐槽,哦,是飞思卡尔啊,一般情况别人PORT都是从1开始,你丫就非得从0开始,BUG? 代码处理增加分支,驱动层常常这样;看注释有时候比刷抖音好玩;

 写在最后:TOS-WLink对我已测USB设备有边缘优化加速处理,如果你心爱且常用的USB设备想提速,不是不可以支持;前提你学会下图的wireshark抓包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值