linux-device-driver - 串口8250环回驱动代码?

时间:2012-10-26 13:13:20

标签: serial-port linux-device-driver

我想在/drivers/tty/serial/8250.c中的8250.c中实现一个串行环回驱动程序代码,如linux-3.6.1内核中所见。 我不想使用硬件环回(即通过短接标准串口的引脚2(tx)和3(rx)),而是我想修改8250.c驱动程序,这样来自用户空间的数据将会传播来自" serial8250_tx_char"直接作用于" serial8250_rx_char"没有去硬件,即我想收到传输的内容?

一种可能的实现方法是将传输循环缓冲区数据放入tty翻转缓冲区,然后将此数据推送到tty核心,以便用户空间可以接收它? 我想知道如何在代码中执行此操作。我们可以搜索" rx和tx"上面提到的函数 - 我正在寻找的地方,我将如何测试它,意味着通过写入设备文件然后立即接收它。

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

任何帮助将不胜感激......

作者Abhijit

1 个答案:

答案 0 :(得分:-2)

`@@ -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在内部环回模式下工作。