【问题标题】:write_room Full - tty Driverwrite_room Full - tty 驱动程序
【发布时间】:2019-05-16 14:14:06
【问题描述】:

我正在编写一个新的 tty 串行驱动程序。我在驱动程序中有一个计数,它告诉发送到写入函数的字节数。写入成功后计数会减少。当 write_room 已满时,应用程序会等待,当 write_room 可用时,它会尝试写入下一组数据。此时 tty 驱动程序尝试逐个字符地写入相同的先前数据。调用 tty_io.c tty_put_char 函数。无法解决此问题,请在此处请求输入。

【问题讨论】:

  • tty 正在使用循环缓冲区。每当数据来自一侧或另一侧时,您都必须移动其指针。
  • 感谢您的回复!所以您的意思是 tty 核心将有一个循环缓冲区,并且该指针必须由 tty 驱动程序修改?仅供参考,我的驱动程序中没有使用任何循环缓冲区。

标签: linux-kernel tty


【解决方案1】:

好的,所以我尝试了 belwo 实现更改: 1. 我在串行应用程序中禁用了回声。 2.在tty驱动中,得到成功写入的响应后,调用tty驱动的tty_wakeup。

执行上述操作部分解决了我的问题。 但这并不能始终如一地工作。在此处请求有关我的方法的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 2018-05-07
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2013-10-25
    相关资源
    最近更新 更多