我想在/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
答案 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在内部环回模式下工作。