SSD_CDC


1. 内核配置

make menuconfig

-> Device Drivers
 -> USB Gadget Support
   -> USB Gadget Drivers
     -> Serial Gadget (with CDC ACM and CDC OBEX support)

生成模块:u_serial.ko usb_f_acm.ko usb_f_obex.ko usb_f_serial.ko g_serial.ko (依赖 libcomposite 

模块装载

insmod libcomposite.ko 
insmod u_serial.ko 
insmod usb_f_acm.ko 
insmod usb_f_obex.ko 
insmod usb_f_serial.ko 
insmod g_serial.ko 
注意:builtin模块请忽略

2. 占用ep

占用3个ep,其中2个为bulk(in/out),packesize为512/1024(2.0/3.0),还需要一个interrupt ep,packetsize为10

注意事项:不要加载g_webcam.ko, 否则有可能因为你平台的EP不够导致CDC串口不能正常枚举。


3. 测试

  1. 驱动加载后,在/dev目录下会生产/dev/ttyGS0

  2. 将USB线插入PC电脑后,设备管理器会识别到 "ELML GMAS(COMx)"

  3. 打开PC端串口工具即可进行收发

  4. 板端测试

    1. 发送

      echo 1234567890 > /dev/ttyGS0

    2. 接收

      cat /dev/ttyGS0