0

我是开发Linux驱动程序的新手...... 我正在开发一个使用 TTY 访问串口的 SMS 驱动程序(通过串口到调制解调器的 AT 命令)。驱动程序是用 C 编写的。

在设计中,从调制解调器到驱动程序的消息可以由两个事件触发:

1) 响应驱动程序发出的 AT 命令的状态(即预期消息)

2) 新短信指示(即意外消息)

我计划使用两个线程 - 一个用于写入 TTY,一个用于从 TTY 读取。是否可以配置 TTY 以便我的读取线程在传入字符时唤醒(即读取线程是事件触发的,而不是基于轮询)?

最好的问候, Witek

4

1 回答 1

2

我不认为你真的想要两个线程。典型的程序流程(编写 AT 命令、检查响应等)将更容易在单线程程序中编写和调试。

select()可以通过调用来等待字符。tty 层大多是通过tcsetattr, tcgetattr和friends 系统调用来配置的。例如,通过此调用,您可以配置是否要在新行或每个字符上被中断。有关手册页,请参见 man termios。两个大选项是您是否希望将 EOF、EOL Ctrl-C 等特殊字符处理为具有数据(原始模式)或由 tty 层解释(规范模式)。

请参阅串行编程指南中有关选择的部分,或选择手册页以获取更多信息

于 2010-07-30T12:17:35.353 回答