1

我想在 linux-3.6.1 内核中找到的 /drivers/tty/serial/8250.c 中的 8250.c 中实现串行环回驱动程序代码。我不想使用硬件环回(即通过短接标准串行端口的引脚 2(tx)和 3(rx)),而是我想修改 8250.c 驱动程序,以便来自用户空间的数据将传输从“serial8250_tx_char”函数直接到“serial8250_rx_char”而不用去硬件,即我想接收发送的什么?

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

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

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

阿比吉特

4

1 回答 1

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

于 2012-11-26T09:50:04.463 回答