usb gadget 串口(serial)的配置和使用

1. 简介

        本篇文章主要是配置内核并使用 usb 的 gadget 的串口,即将带有usb口的linux平台,虚拟成一个串口设备。包括内核配置,加载和使用方法。最终在linux平台上会在创建出一个 /dev/ttyGS*节点。

 

2. 具体操作

首先保证平台设备树中的相应的usb口的配置是slave模式,可以是 peripheral 模式,或者 otg。例子如下:

usb相关的节点中属性 dr_mode = "otg"; ,或者 dr_mode = "peripheral";

然后配置menuconfig中的相关项,我配置成的是模块加载的形势

make menuconfig

> Device Drivers > USB support > USB Gadget Support

make 时,生成的文件所在位置 drivers/usb/gadget/libcomposite.ko 和 drivers/usb/gadget/legacy/下的 u_serial.ko 和 drivers/usb/gadget/function/ 下的u_serial.ko usb_f_serial.ko usb_f_acm.ko。

在系统起来后分别按顺序加载

> insmod libcomposite.ko
> insmod u_serial.ko
> insmod usb_f_serial.ko
> insmod usb_f_acm.ko
> insmod u_serial.ko

注:如果没有acm,需要配置上
menuconfig中的 > Device Drivers > USB support > 
<*>     USB Modem (CDC ACM) support
即使勾选上编译进内核了,仍然需要 usb_f_acm.ko 模块的加载。
让window识别可能还需要这个文件 linux-cdc-acm.inf ,这个文件是在内核源码的 Documentation\usb目录下,电脑识别后的现象是自动识别出了com口

 

波特率等的配置不影响通信,
当我们用串口助手打开并发送数据时,是自发自收,当我们在板子中向节点发送数据时,串口助手能收到
自发自收

板子向电脑发送

/dev 下自动创建了设备节点,如果需要手动创建,需要查看下设备节点主设备号
> cat /sys/class/tty/ttyGS0/dev
 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值