作者| 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功能使用如下脚本:
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下载|芯片、开发板购买