linux內核對USB與串口驅動移植

      網友投稿 1063 2025-03-31

      寫在最前面


      linux內核對USB與串口驅動移植

      華清遠見教育集團

      15年專注高端IT培訓

      做良心教育,做專業(yè)教育,做受人尊敬的職業(yè)教育

      創(chuàng)客學院官網:http://www.makeru.com.cn/

      華清遠見創(chuàng)客學院嵌入式課程鏈接:http://www.makeru.com.cn/emb

      華清遠見創(chuàng)客學院物聯(lián)網課程鏈接:http://www.makeru.com.cn/iot

      正文

      回想一下之前用windows下的串口助手,接收和發(fā)送對底層開發(fā)板子的數據流。硬件層面上,下位機通發(fā)送數據,通過USB轉串口,實現了USB接口到通用串口的轉換;軟件層面上,需要串口驅動 CH341 PL2303,和USB驅動。然后才能通過串口助手(應用程序)來實現與下位機的交互。

      在嵌入式系統(tǒng)上,內核是經裁剪過的,需要Linux內核對這兩種驅動程序的選配或者移植。

      USB驅動的移植

      添加USB設備樹信息

      root@linux:~# cd linux-3.14-fs4412/

      root@linux:linux-3.14-fs4412# vim arch/arm/boot/dts/exynos4412-fs4412.dts

      usbphy: usbphy@125B0000 {

      #address-cells = <1>;

      #size-cells = <1>;

      compatible = "samsung,exynos4x12-usb2phy";

      reg = <0x125B0000 0x100>;

      ranges;

      clocks = <&clock 2>, <&clock 305>;

      clock-names = "xusbxti", "otg";

      usbphy-sys {

      reg = <0x10020704 0x8 0x1001021c 0x4>;

      };

      };

      ehci@12580000 {

      status = "okay";

      usbphy = <&usbphy>;

      };

      usb3503@08 {

      compatible = "smsc,usb3503";

      reg = <0x08 0x4>;

      connect-gpios = <&gpm3 3 1>;

      intn-gpios = <&gpx2 3 1>;

      reset-gpios = <&gpm2 4 1>;

      initial-mode = <1>;

      };

      編譯內核,cp到tftp根目錄下

      root@linux:linux-3.14-fs4412# make dtbs

      scripts/kconfig/conf --silentoldconfig Kconfig

      DTC ? ? arch/arm/boot/dts/exynos4412-fs4412.dtb

      root@linux:linux-3.14-fs4412# cp arch/arm/boot/dts/exynos4412-fs4412.dtb /tftpboot/

      驗證

      重啟啟動開發(fā)板,將U盤插入USB口,可系統(tǒng)識別到設備節(jié)點

      [root@farsight ]# ls /dev/sda

      /dev/sda

      配置內核的串口驅動: CH341 ? PL2303

      進入內核源碼目錄,配置內核

      root@linux:linux-3.14-fs4412# make menuconfig

      Symbol: USB_SERIAL_PL2303 [=y]

      Type ?: tristate

      Prompt: USB Prolific 2303 Single Port Serial Driver

      Location:

      -> Device Drivers

      -> USB support (USB_SUPPORT [=y])

      (1) ? ? -> USB Serial Converter support (USB_SERIAL [=y])

      Defined at drivers/usb/serial/Kconfig:510

      Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=y]

      Symbol: USB_SERIAL_CH341 [=y]

      Type ?: tristate

      Prompt: USB Winchiphead CH341 Single Port Serial Driver

      Location:

      -> Device Drivers

      -> USB support (USB_SUPPORT [=y])

      (1) ? ? -> USB Serial Converter support (USB_SERIAL [=y])

      Defined at drivers/usb/serial/Kconfig:99

      Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=y]

      root@linux:linux-3.14-fs4412# make uImage

      進入目錄查看編譯的狀態(tài)

      root@linux:linux-3.14-fs4412# cd ?drivers/usb/serial/

      root@linux:serial# ls *.o

      built-in.o ?bus.o ?ch341.o ?generic.o ?pl2303.o ?usb-serial.o ?usbserial.o

      cp到tftp根目錄下

      root@linux:linux-3.14-fs4412# cp arch/arm/boot/uImage /tftpboot/

      驗證

      重啟啟動開發(fā)板,將M0的USB串口插入到A9的USB串口上,查看設備節(jié)點信息

      [root@farsight ]# ls /dev/ttyUSB0

      /dev/ttyUSB0

      IoT Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:無代碼開發(fā)工具bs(免費無代碼開發(fā)軟件)
      下一篇:電腦上做好的表格,發(fā)微信,有手機打開后,上面插入的圖片錯位,還變形了,怎么解決?謝了
      相關文章
      亚洲日本国产乱码va在线观看| 久久夜色精品国产噜噜亚洲AV| 亚洲一级毛片视频| 久久精品国产亚洲77777| 亚洲专区在线视频| 亚洲综合自拍成人| 国产亚洲精久久久久久无码| 亚洲av高清在线观看一区二区| 亚洲AV无码AV吞精久久| 亚洲精品欧美综合四区| 亚洲国产精品成人午夜在线观看| 亚洲精品无码久久久久A片苍井空| 亚洲日韩AV一区二区三区四区| 亚洲一卡一卡二新区无人区| 亚洲老熟女五十路老熟女bbw| 亚洲成AV人片在WWW| 亚洲av中文无码乱人伦在线观看| 亚洲AV成人精品日韩一区| 国产亚洲漂亮白嫩美女在线| 亚洲国产精品日韩专区AV| 亚洲综合色视频在线观看| 国产精品亚洲美女久久久 | 国产亚洲精品激情都市| 中文字幕无码精品亚洲资源网| 国产亚洲精品a在线观看| 亚洲第一AAAAA片| 91亚洲国产成人久久精品网站| 亚洲成无码人在线观看| 亚洲久悠悠色悠在线播放| 亚洲欧美国产精品专区久久| 亚洲Av永久无码精品一区二区| 午夜亚洲国产精品福利| 亚洲中文字幕无码一久久区| 亚洲国产综合专区在线电影 | 亚洲国产精品丝袜在线观看| 曰韩亚洲av人人夜夜澡人人爽| 图图资源网亚洲综合网站| 亚洲国产美女精品久久久久| 亚洲一日韩欧美中文字幕在线| 亚洲国产成人久久笫一页| 亚洲精品无码久久久影院相关影片|