使用TTY的中断驱动驱动程序?

时间:2010-07-30 10:58:28

标签: linux tty

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

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

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

2)新SMS的指示(即意外消息)

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

最诚挚的问候, Witek

1 个答案:

答案 0 :(得分:2)

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

可以通过select()电话等待聊天。 tty层主要通过配置 tcsetattr, tcgetattr和朋友系统调用。通过此调用,您可以配置您想要在新行或每个字符中断的情况。请参阅man termios以获取联机帮助页。两个大的选项是你想要的特殊字符如EOF,EOL Ctrl-C等...被处理有数据(原始模式)或被tty层解释(规范模式)。

有关详细信息,请参阅串行编程指南中的select部分,或选择联机帮助页