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

时间:2019-02-06 08:01:22

标签: linux kernel

我在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. 在内核中实现常规的串行驱动程序。

  2. 使用pty(伪终端),此处执行类似操作: https://github.com/carloop/can-utils-osx/blob/master/slcanpty.c

  3. 使用cuse包裹这些API-用户空间字符设备  https://libfuse.github.io/doxygen/cuse_8c.html

我认为选项(2)和(3)都应该工作正常,但是选项(3)似乎最好。

您如何看待?是否可以通过使用cuse包装API来创建常规序列?

0 个答案:

没有答案