linux C 中以轮询方式与虚拟串口设备交互

Interact with virtual serial device in polling mode in linux C

我正在尝试在 android 内核上启用对串行 over USB 驱动程序的轮询支持,以便我可以使用 kgdboc 对其进行调试。我基于这些 githubs 中的代码:

但是,我找不到通过用户区的 C 程序通过字符轮询模式启用和使用字符的方法。这使得调试非常困难,因为我唯一能做的就是将 kgdboc 设置为 /dev/ttyGS0,然后将 "g" 发送到 sysrq-trigger,并祈祷它有效。

换句话说,我需要一个用户态程序来触发代码路径,该代码路径在 tty_operations 结构上达到以下操作:

.poll_init = gs_poll_init,
.poll_get_char = gs_poll_get_char,
.poll_put_char = gs_poll_put_char,

相反,每当我写入 /dev/ttyGS0 时,我都会触发 "write" 操作。

任何帮助将不胜感激。

谢谢!

我最终按照 Chris Stratton 的建议创建了一个导出 sysfs 节点的驱动程序。

我基于this tutorial