我在可配置为DTE/DCE的硬件上运行嵌入式Linux内核。在一个名为tty_io.c的文件中,tty/serial驱动程序中有一个函数tty_tiocmset(),它从tty_ioctl中取一个位模式来设置/清除特定的调制解调器控制信号。有趣的是,tty_tiocmset()函数屏蔽了除TIOCM_DTR | TIOCM_RTS | TIOCM_OUT1 | TIOCM_OUT2 | TIOCM_LOOP之外的所有其他调制解调器信号(该掩码如下所示)。但是,如果您查看文档,看起来应该能够设置/清除所有调制解调器信号http://www.kernel.org/doc/man-pages/online/pages/man4/tty_ioctl.4.html向下滚动到“调制解调器控制”。tty_tiocmset在Linux内核掩码所需的调制解调器信号
有没有人知道为什么这个面具没有其他信号,如RI,CD,CTS,DSR?还有另一种方式使用未经修改的驱动程序来控制其他调制解调器信号?
谢谢,我对OUT1和OUT2信号感到困惑,但它确实有道理,我可以使用这些信号,并根据DCE的需要重新映射它们。我从来没有看到他们出现在任何司机。由于我的驱动程序将允许uart端口充当dce或dte,我认为将DTE调制解调器信号和OUT信号映射到相应的DCE调制解调器信号是最有意义的。 – user1415608