在Linux C中以轮询模式与虚拟串行设备进行交互

时间:2019-03-06 16:19:19

标签: linux-kernel serial-port linux-device-driver android-kernel

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

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

换句话说,我需要一个userland程序来触发代码路径,该路径在tty_operations结构上进行以下操作:

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

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

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

我基于this tutorial