前言
2K1000B 内置OTG模块,支持Host和Device模式,这里主要分析Device模式的使用和测试方法。Linux内核中支持g_zero,g_serial,g_printer,g_ethernet等常见Device驱动。
开发平台:
Ubuntu 14.04.5 LTS 64位
交叉编译器:
mips64el-linux-
gcc version 4.9.3 20150626 (Red Hat 4.9.3-2) (GCC)
内核和驱动编译
Step 1:下载内核源码
下载位置:龙芯开源FTP站点,2K目录
Step 2:内核编译
cp ls2k.config .config
make ARCH=mips CROSS_COMPILE=mips64el-redhat-linux- menuconfig
menuconfig确认内核配置:
默认DWC驱动为Synopsys DWC_otg。
将Gadget Zero,Printer Gadget和Serial Gadget等驱动编译成模块。
为了调试方便,这里使用rootfs.cpio作为RAM文件系统。
内核编译+驱动编译:
make ARCH=mips CROSS_COMPILE=mips64el-linux- vmlinuz -j8
make ARCH=mips CROSS_COMPILE=mips64el-linux- modules
g_zero测试
Step 1 :加载g_zero驱动,并设置成回环测试模式:
insmod libcomposite.ko
insmod usb_f_acm.ko
insmod g_zero.ko loopdefault=1
Step 2 :使用USB线将2K开发板连接至Win10的PC主机。
Step 3 :PC端加载g_zero驱动
libusb-win32-bin下载
选中g_zero设备,安装驱动。
Step 4 :打开Bus hound调试软件
选中g_zero设备,确认有一个控制端口和两个Bulk端口。打开Capture窗口,监测输入输出数据。
Step 5 :回环测试
首先,选中out端口,点击run,发送kangkang seu!字符。然后选中in端口,设定Data Length为100,点击run。
成功收到所发送的字符,同时capture窗口监测到输入输出的帧。