【发布时间】:2012-10-06 07:23:16
【问题描述】:
我正在设计一个控制系统,它应该通过串行端口处理过多的执行器(或执行器组)。新设计(尚未实现)应该通过多个 POSIX 线程控制执行器。
这是否可以多次(通过多个线程)打开一个串行端口?
如果是的话,我会写一个同步写/异步读机制。会有n线程M[0]到M[n-1]可以直接向串口写入数据。他们不应该直接从串口读取。相反,线程R 应该在while(true) 循环中从端口读取数据,并将数据提供给等待它的相应线程。 (唤醒等待响应的M[i],当数据准备好,属于ith线程)
这完全取决于是否可以通过多个线程写入串行端口。
注意:我无法测试串口的行为,因为目前我无法访问我大学机电一体化实验室的设备,
我正在使用带有 Xenomai 实时子系统(如果重要)修补的内核 2.6.38-8
我正在将代码移植到与串行端口通信的传统 Linux 方式。 (打开/dev/ttyS0,设置波特率,read(),write()等)目前使用第三方库与串口通信。
【问题讨论】:
标签: multithreading synchronization pthreads