写在最上面

华清远见教育集团

15年专注高档IT培训

做良心教育,做专业教育,做受人敬爱的职业教育

创客大学官网:

linux内核中的串口驱动_linux内核串口配置_linux串口驱动程序

华清远见创客大学嵌入式课程链接:

华清远见创客大学物联网课程链接:

正文

回想一下之前用windows下的并口助手,接收和发送对底层开发板子的数据流。硬件层面上,下位机通发送数据linux内核中的串口驱动,通过USB转并口linux内核中的串口驱动,实现了USB插口到通用并口的转换;软件层面上,须要并口驱动CH341PL2303,和USB驱动。之后能够通过并口助手(应用程序)来实现与下位机的交互。

在嵌入式系统上,内核是经剪裁过的,须要linux内核对这两种驱动程序的选装或则移植。

USB驱动的移植

添加USB设备树信息


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


  
  1.         usbphy: usbphy@125B0000 {
  2.             #address-cells = ;
  3.             #size-cells = ;
  4.             compatible = "samsung,exynos4x12-usb2phy";
  5.             reg = <0x125B0000 0x100>;
  6.             ranges;
  7.             clocks = <&clock 2>, <&clock 305>;
  8.             clock-names = "xusbxti", "otg";
  9.             usbphy-sys {
  10.             reg = <0x10020704 0x8 0x1001021c 0x4>;
  11.             };
  12.         };
  13.         ehci@12580000 {
  14.         status = "okay";
  15.         usbphy = ;
  16.         };
  17.         usb3503@08 {
  18.         compatible = "smsc,usb3503";
  19.         reg = <0x08 0x4>;
  20.         connect-gpios = <&gpm3 3 1>;
  21.         intn-gpios = <&gpx2 3 1>;
  22.         reset-gpios = <&gpm2 4 1>;
  23.         initial-mode = <1>;
  24.         };

编译内核,cp到tftp根目录下


  
  1. root@linux:linux-3.14-fs4412# make dtbs
  2. scripts/kconfig/conf --silentoldconfig Kconfig
  3.   DTC     arch/arm/boot/dts/exynos4412-fs4412.dtb
  4. root@linux:linux-3.14-fs4412# cp arch/arm/boot/dts/exynos4412-fs4412.dtb /tftpboot/

验证

重启启动开发板,将U盘插入USB口,可系统辨识到设备节点


  
  1. [root@farsight ]# ls /dev/sda
  2. /dev/sda

配置内核的并口驱动:CH341PL2303

步入内核源码目录linux视频教程,配置内核

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


  
  1.    Symbol: USB_SERIAL_PL2303 [=y]                                                                           
  2.    Type  : tristate                                                                                         
  3.    Prompt: USB Prolific 2303 Single Port Serial Driver                                                      
  4.      Location:                                                                                              
  5.        -> Device Drivers                                                                                    
  6.          -> USB support (USB_SUPPORT [=y])                                                                  
  7.    (1)     -> USB Serial Converter support (USB_SERIAL [=y])                                                
  8.      Defined at drivers/usb/serial/Kconfig:510                                                              
  9.      Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=y]  
  10.    Symbol: USB_SERIAL_CH341 [=y]                                                                            
  11.    Type  : tristate                                                                                         
  12.    Prompt: USB Winchiphead CH341 Single Port Serial Driver                                                  
  13.      Location:                                                                                              
  14.        -> Device Drivers                                                                                    
  15.          -> USB support (USB_SUPPORT [=y])                                                                  
  16.    (1)     -> USB Serial Converter support (USB_SERIAL [=y])                                                
  17.      Defined at drivers/usb/serial/Kconfig:99                                                               
  18.      Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=y]  

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

步入目录查看编译的状态

linux内核中的串口驱动_linux内核串口配置_linux串口驱动程序


  
  1. root@linux:linux-3.14-fs4412# cd  drivers/usb/serial/
  2. root@linux:serial# ls *.o
  3. 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/
 

验证

重启启动开发板,将M0的USB并口插入到A9的USB并口上红旗linux安装,查看设备节点信息


  
  1. [root@farsight ]# ls /dev/ttyUSB0
  2. /dev/ttyUSB0

本文原创地址://gulass.cn/hqyjjyjtnzzg.html编辑:刘遄,审核员:暂无