我是个菜鸟,LINUX自带的串口驱动已经有了,为什么有的人还要写自己的串口驱动呢?这是为什么

解决方案 »

  1.   

    写串口的驱动的机会应比较少吧, linux内核里基本上都有现成的, 一般就是写调用串口的应用程序。 确定没搞错???
      

  2.   

    一般来说 内核的串口驱动是写好的,很多是应用层为主,其实就给串口配个波特率,以及termios的一些填写,当然你也可以看下UART的设备驱动,看看数据是是如何收发的,有助于当数据开始丢包等一些的问题的时候,来分析问题,以及不同的串口芯片,是如何来移植的
      

  3.   

    不同的ic需要填写预留的callback function,不然内核怎么知道uart的register是多少,该如何设置。
      

  4.   

    Linux kernel官方或者IC原厂没提供驱动,就需要自己写啦。
      

  5.   

    通常需要自己写的串口驱动都是一些比较特殊的ic,比如spi转uart,i2c转uart。按照linux下的串口驱动模板写也不算太难
      

  6.   

    有时候串口是挂在一些别的总线上的,比如pci  等,这时候就需要自己修改移植了,内核有的只是标准的驱动,移植的话需要理解驱动的架构
      

  7.   

    串口是tty设备,标准的linux tty设备驱动是分层的,主要是tty核心,线路规程层以及tty驱动,最底层tty驱动是直接与硬件交互的,主要是serial_core.c和各自的uart.c,serial_core.c与硬件无关,主要是软件缓冲等配置,所有芯片可共用的;各自的uart.c是实现操作串口芯片硬件寄存器配置的,但不同的串口芯片,硬件寄存器配置各异,因此各自的uart.c各异。linux虽然提供了部分示例芯片的代码,但是如果有特殊的需求或者没有对应的芯片代码时,就需要自己编写。