代码之家  ›  专栏  ›  技术社区  ›  ransh

Linux中串行用户空间驱动程序(UART)

  •  0
  • ransh  · 技术社区  · 5 年前

    我在Linux用户空间中已经有了一个串行驱动程序的功能代码,它是通过FPGA实现的,有以下API:

    /*
    * Send the buffer using the Uart.
    */
    uart_configure(int channelNum, int baudrate, int  stopbit, int startbit, int  
    parity, int  flowcntr);
    
    
    /*
    * Receive buffer
    * Returns: number of bytes read.
     */
     int uart_recv (int channelNum, char* ReceiveBuffer, int size);
    
    /*
     * Send the buffer using Uart.
     * Returns: number of bytes sent.
     */
      int uart_send(int channelNum, char* SendBuffer, int size);
    

    但是如果我们需要它作为一个常规的串行设备(/dev/ttySx)公开呢?

    为此,我考虑了以下选择:

    1. 使用pty(伪终端),这里也做了类似的事情: https://github.com/carloop/can-utils-osx/blob/master/slcanpty.c

    2. 用cuse-userspace字符设备包装这些api https://libfuse.github.io/doxygen/cuse_8c.html

    你怎么认为?是否可以通过用cuse包装api来创建常规序列?

    0 回复  |  直到 5 年前