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 节点的驱动程序。
我正在尝试在 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 节点的驱动程序。