如何切换USB Device Class,以ADB和RNDIS为例

Comake Online


作者| dewei.chen

芯片:SSD22X


本期系统开发专题,我们主要讲解如何切换USB Device Class,以ADB和RNDIS为例。SSD22X平台通用,SSD222D验证。



由于不同的USB Device Class会占用不同数量的EP,ADB占用2个,RNDIS占用3个,SSD22X平台只有4个EP,所以配置使用不同的USB Device需要进行切换。


一、USB Device环境搭建


USB Device环境需要依赖一些驱动,在kernel下make menuconfig编译出对应ko。


1. rndis device环境搭建,必要的ko如下:


usb-common.ko、udc-core.ko、udc-msb250x.ko:

Device Drivers —>



libcomposite.ko:

Device Drivers —>



u_ether.ko、usb_f_ecm.ko、usb_f_ecm_subset.ko、usb_f_rndis.ko:

Device Drivers —>



可选ko,若使用gadget-configfs.sh配置rndis则无需加载该ko

g_ether.ko:

Device Drivers —>



2、adb device环境搭建,必要的ko如下:


usb-common.ko、udc-core.ko、udc-msb250x.ko:

Device Drivers —>




libcomposite.ko:

Device Drivers —>



usb_f_fs.ko:

Device Drivers —>



二、不同的USB Device需要进行切换方法(使用configfs方式)


1. 加载对应USB Device所需的ko,如要使用ADB和RNDIS功能使用如下脚本:

usb.sh


2. 使用gadget-configfs.sh切换并配置对应USB Device,使用前需修改ADB工具路径。



3. 测试各USB Device功能:


①./gadget-configfs.sh h1切换ADB功能


pc上使用ADB工具platform-tools_r33.0.1-windows.zip测试,通过usb线将设备与pc端连接起来,通过以下的常用命令可以进行测试:

adb devices --> 枚举adb设备

adb shell --> 连接adb设备的shell

adb push/pull --> 与adb设备进行文件传输


②./gadget-configfs.sh c1切换RNDIS功能


功能测试参考SSD_USB-RNDIS使用参考中2.2和2.3

其他USB Device Class可参考上述方法


》》原帖地址


End.



往期回顾


星宸科技智能门锁方案介绍


SSD222Q在工业HMI中的新应用


星宸科技智能网关方案介绍


SigmaStar智能家居全家桶





扫码进入论坛

原厂答疑|产品选型|官方资源



扫码咨询客服

SDK下载|芯片、开发板购买



X 提交 下一题

查看更多