linux-kernel - 在linux C中以轮询模式与虚拟串行设备交互
问题描述
我正在尝试在 android 内核上启用对串行 USB 驱动程序的轮询支持,以便我可以使用 kgdboc 对其进行调试。我基于这些 github 中的代码:
但是,我找不到通过用户空间上的 C 程序启用和使用 char by char 轮询模式的方法。这使得调试非常困难,因为我唯一能做的就是将 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
我都会触发“写”操作。
任何帮助将不胜感激。
谢谢!
解决方案
正如 Chris Stratton 建议的那样,我最终创建了一个导出 sysfs 节点的驱动程序。
我以本教程为基础
推荐阅读
- html - 截断弹性项目中的文本
- oracle - 数据库备份脚本
- google-apps-script - 如果单元格日期等于今天,如何发送电子邮件
- java - 如何保存 editText 可见性状态(View.GONE)?
- python - 试图用蜘蛛生成器上的奇怪行为来回应亚马逊的验证码
- arduino - USART 通过 Arduino Leonardo 将十六进制代码传输到设备
- ffmpeg - 使用 ffmpeg 将 2 通道 .mov 文件转换为 .mp3
- c# - 如何将配置绑定到 JSON 对象数组 .Net Core
- python - 为什么在 ceph osd 抖动期间调用 boto3 list buckets 操作会返回 Bad Gateway (502)?
- c++ - C++ 中 [in] 等式运算符的求值顺序?