Драйвер пользовательского пространства для последовательного интерфейса (UART) в Linux - PullRequest
0 голосов
/ 06 февраля 2019

У меня уже есть функциональный код для последовательного драйвера в пользовательском пространстве 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. Оберните эти API cuse - символьное устройство пользовательского пространства https://libfuse.github.io/doxygen/cuse_8c.html

Я думаю, что оба варианта (2) и (3) должны работать нормально, но вариант (3) кажется лучшим.

Что вы думаете?Можно ли создать обычный сериал, обернув API cuse?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...