Serial port linux设备驱动程序-串行8250环回驱动程序代码?

Serial port linux设备驱动程序-串行8250环回驱动程序代码?,serial-port,linux-device-driver,Serial Port,Linux Device Driver,我想在linux-3.6.1内核中的/drivers/tty/serial/8250.c中实现8250.c中的串行环回驱动程序代码。 我不想使用硬件环回(即通过短接标准串行端口的引脚2(tx)和引脚3(rx)),而是想修改8250.c驱动程序,这样,来自用户空间的数据将从“serial8250\u tx\u char”函数直接传输到“serial8250\u rx\u char”,而无需访问硬件,也就是说,我想接收发送的内容 一种可能的实现是将传输循环缓冲区数据放入tty翻转缓冲区,然后将该数据

我想在linux-3.6.1内核中的/drivers/tty/serial/8250.c中实现8250.c中的串行环回驱动程序代码。 我不想使用硬件环回(即通过短接标准串行端口的引脚2(tx)和引脚3(rx)),而是想修改8250.c驱动程序,这样,来自用户空间的数据将从“serial8250\u tx\u char”函数直接传输到“serial8250\u rx\u char”,而无需访问硬件,也就是说,我想接收发送的内容

一种可能的实现是将传输循环缓冲区数据放入tty翻转缓冲区,然后将该数据推送到tty内核,以便用户空间可以接收它? 我想知道如何在代码中实现它。我们可以搜索上面提到的“rx和tx”功能,这是我正在寻找的,我将如何测试这一点,通过写入设备文件,然后立即接收相同的方法

我也有一个示例补丁,但不确定它是否会工作

任何帮助都将不胜感激

阿比吉特

`@@ -2112,6 +2116,7 @@ static int serial8250_startup(struct uart_port *port)
                if (is_real_interrupt(up->port.irq))
                        up->port.mctrl |= TIOCM_OUT2;

   + up->port.mctrl |= TIOCM_LOOP;
    serial8250_set_mctrl(&up->port, up->port.mctrl);

    /* Serial over Lan (SoL) hack:

这将使UART在内部环回模式下工作。`

这太疯狂了。Linux上没有回声设备吗?试试/dev/echo.Hey Hans。。。我们的想法是更改驱动程序代码并在那里添加一个环回代码……然而,正如我所看到的,与超级终端/teraterm类型的应用程序相反,没有用于echo的设备,它可以检查字符的回显。
TIOCM\u LOOP
是您的解脱。