Loongson 2K1000B OTG device模式调试

本文介绍如何在2K1000B开发板上使用Linux内核支持的g_zero设备驱动进行USB Device模式的测试。通过在Ubuntu环境下交叉编译内核和驱动,连接至Windows PC进行回环测试,验证了g_zero驱动的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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下载
libusb
选中g_zero设备,安装驱动。

Step 4 :打开Bus hound调试软件
选中g_zero设备,确认有一个控制端口和两个Bulk端口。打开Capture窗口,监测输入输出数据。
bushound

Step 5 :回环测试
首先,选中out端口,点击run,发送kangkang seu!字符。然后选中in端口,设定Data Length为100,点击run。
bushound
成功收到所发送的字符,同时capture窗口监测到输入输出的帧。

### 关于龙芯2K1000处理器OTG功能的使用方法 对于龙芯2K1000处理器而言,其具备丰富的外设接口资源,其中包括USB OTG (On-The-Go) 功能的支持。该特性允许设备既可作为主机也可作为外围设备来与其他USB设备通信,在嵌入式应用领域具有较高的灵活性。 #### USB OTG模式切换机制 为了实现OTG的功能,通常需要通过软件控制ID引脚的状态来进行角色转换。当ID引脚处于低电平时,默认设置为Host模式;而当ID引脚被拉高时,则进入Device模式[^2]。具体来说: - **Host Mode**: 可连接U盘、鼠标键盘等标准USB设备; - **Device Mode**: 能够接入其他计算机或其他充当Host的角色的装置中成为附属单元。 #### 配置步骤概述 在实际项目开发过程中,如果想要启用并正确配置USB OTG端口,建议按照以下指导原则执行必要的初始化过程: 1. 修改内核源码中的`arch/mips/include/asm/mach-loongson/platform.h`文件定义相应的宏以开启对应模块支持。 2. 编辑`.config`配置文档确保启用了如下选项: - `CONFIG_USB_SUPPORT=y` - `CONFIG_USB_OTG=y` 3. 对应驱动程序编写方面,需参照官方提供的API文档完成特定寄存器的操作序列,比如使能PHY电源管理、设定传输速率等工作[^4]。 ```c // 示例代码片段用于展示如何访问底层硬件寄存器 void enable_otg_mode(void){ volatile unsigned int *reg_base = (unsigned int *)0xBFF00000; // 假定基地址 reg_base[REG_OFFSET_ID_PIN] |= BIT(7); // 设置ID Pin状态 } ``` 值得注意的是,上述操作细节可能因具体的主板设计方案和个人需求有所差异,因此强烈推荐开发者仔细阅读相关技术资料,并结合实际情况调整参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值