如何监控Linux中串口的数据?

div*_*eek 25 linux monitoring serial-port

我正在调试与串行设备的通信,我需要看到所有数据都在两个方向上流动.

在Linux上看起来应该很容易,其中串口由文件表示.有什么方法可以做一种"双向T恤",我告诉我的程序连接到一个管道,将数据复制到一个文件,并将其随机播放到实际的串口设备?

我想我甚至可能知道怎么写这样的野兽,但这似乎并不重要,特别是为了让所有的ioctls通过端口配置等等.

有人已经建造了这样的东西吗?它似乎太有用了(对于调试串行设备驱动程序的人来说)不存在.

sho*_*nex 21

strace对此非常有用.您可以看到所有ioctl调用,并解码相应的结构.在您的情况下,以下选项似乎特别有用:

-e read = set

对从指定集中列出的文件描述符读取的所有数据执行完整的十六进制和ASCII转储.例如,要查看文件描述符3和5上的所有输入活动,请使用-e read = 3,5.请注意,这与read(2)系统调用的正常跟踪无关,该调用由选项-e trace = read控制.

-e write = set

对写入指定集中列出的文件描述符的所有数据执行完整的十六进制和ASCII转储.例如,要查看文件描述符3和5上的所有输出活动,请使用-e write = 3,5.请注意,这与write(2)系统调用的正常跟踪无关,该调用由选项-e trace = write控制.

  • 这听起来很不错.但我想知道:我怎样才能弄清楚相关的文件描述符编号是什么? (4认同)