**大家好,我是一个新手,在支持4个通道(4个串口)的LINUX.Each串口芯片中,使用3 16550个串口芯片为基于串口的PCI板编写驱动程序。
在我的Linux驱动程序代码中,我已经考虑过为每个端口使用线程,即4x3=12 ports.Do你认为给每个端口一个专用线程是一个好主意,我可以使用一个特定的通道来实现一个空调制解调器,另一个通道RS422一些其他通道RS485,等等
我认为线程编程的原因是所有的线程都是独立运行的,在use.So中,每个线程和每个端口可能是活动的,也可能不是活动的。我的目标是使它们尽可能地相互独立。
请让我知道如何为这种类型的驱动程序的整体设计应该是like.Please给链接/源代码,以防这样一个类似的类型被实施。
这是我第一次做这样的事情,我的逻辑是正确的/不正确的,或者只是一个不正确的流程,这是无效的,听起来非常可怕,谢谢和问候** ..is **
发布于 2011-04-25 21:49:31
Linux内核有许多为处理串行IO而设计的架构代码。据我所知,没有明确的线程化需求,因为通知等是由内核通过回调等完成的。拿一本关于Linux驱动开发的书可能没有坏处。
发布于 2011-04-25 21:11:09
我猜每个端口上都有一些协议在运行,在这种情况下,每个端口一个线程的设计很有意义,因为它允许您整洁地构造协议驱动程序。
我们已经使用这种设计多年了,由于历史原因,我们使用System V消息将协议线程与dispatcher/supervisor线程连接起来。SysV消息不是没有自己的问题(例如,它们不能select() ),所以你可能想看看this SO article的替代方案。
https://stackoverflow.com/questions/5778529
复制相似问题