我在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)公开怎么办?
为此,我考虑了以下选项:
在内核中实现常规的串行驱动程序。
使用pty(伪终端),此处执行类似操作: https://github.com/carloop/can-utils-osx/blob/master/slcanpty.c
使用cuse包裹这些API-用户空间字符设备 https://libfuse.github.io/doxygen/cuse_8c.html
我认为选项(2)和(3)都应该工作正常,但是选项(3)似乎最好。
您如何看待?是否可以通过使用cuse包装API来创建常规序列?