CDC: 配置USB為Gadget serial device

來源:互聯網
上載者:User

Linux支援串連各種USB從裝置,同時也支援自己作為裝置插入到其他主機當中。最典型的例子就是Android OS的手機,插入電腦可以被識別為隨身碟之類的裝置。

對於SOC來說,這部分直接對應了USB Device部分的操作。

為了避免與作為主機時支援的"裝置驅動 (USB Device Driver)"一詞混淆, Linux給這部分的實現取名為"Gadget" (小玩具)。核心源碼的目錄為\drivers\usb\gadget,裡麵包含了核心所支援的不同類型的USB Device Controller (UDC)驅動的實現,以及架構和不同gadget的實現。

以AT91 ARM9為例,最底層的驅動為at91_udc.c(對於支援高速USB 2.0的SOC是atmel_usba_udc.c),它實現了gadget.h定義的統一介面,然後上層的各種gadget driver(如serial.c等)調用這一套統一的介面去實現不同類型的功能,如USB串口、隨身碟、USB乙太網路等等。

Atmel USB串口的架構圖:

 

用如下命令配置kernel configure以supportGadget serial

1  copy kernel configure 檔案到目前的目錄下的obj目錄

2 配置obj目錄下的configure檔案

3 將配置好的configure檔案儲存為.config

4  copy .config檔案至linux kernel的conifg目錄下

 

make mtxxxx_smp_mod_dbg_defconfig ARCH=arm O=obj/ mtxxxx_smp_mod_dbg_defconfig

make menuconfig ARCH=arm O=obj/mtxxxx_smp_mod_dbg_defconfig

cp obj/mtxxxx_smp_mod_dbg_defconfig/.config arch/arm/configs/ mtxxxx_smp_mod_dbg_defconfig

 

配置configure時需要選擇

Device Drivers --->

       USB support --->

              USB Gadget Support --->

                     USB Gadget Drivers (Serial Gadget (With CDC ACMand CDC OBEX support)) --->

 

最終configure檔案中需要包含以下幾條:

CONFIG_USB_MTK_MUSB=y

CONFIG_USB_MTK_MUSB_PERIPHERAL=y

CONFIG_USB_GADGET=y

CONFIG_USB_LIBCOMPOSITE=y

CONFIG_USB_F_ACM=y

CONFIG_USB_U_SERIAL=y

CONFIG_USB_F_SERIAL=y

CONFIG_USB_G_SERIAL=y

CONIFG_CONFIGS_FS=y

 

USB配置好device mode之後, 通過usb calbe接入PC, PC會檢測到Gadget serial device. 相應的driver可以從Linux open source擷取.

可以通過在平台端cat /dev/ttyGS0 ,同時在PC端串口中寫入資料,平台端即可看到正確的資料輸出。

(  請確認driver中boundrate / 主次裝置號設定,主次裝置號可在u_serial.c的gserial_setup() function中指定 gs_tty_driver->major = 0x000   c_ispeed = 9600等; )

To use the Windows ACMdriver you must have the "linux-cdc-acm.inf" file (driver is opensource, get it from the link ) which supports all recent versions of Windows.

http://lxr.free-electrons.com/source/Documentation/usb/

正確安裝driver之後, 通過裝置管理員可以在Ports (COM & LPT) 目錄下看到一個新的COM口.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.