我正在设计一个控制系统,它应该在串口上处理太多的执行器(或多组执行器)。新的设计(尚未实现)应该控制多个POSIX线程的执行器。
这是否可以多次打开串行端口(由多个线程打开)?如果是,我将编写同步写入/异步读取机制。将有n线程、M[0]到M[n-1],可以直接将数据写入串口。他们不应该直接从串口读取。相反,线程R应该从while(true)循环中的端口读取数据,并将数据服务到相应的等待它的线程。(当数据准备就绪并属于i第四线程时,唤醒等待响应的i)
这完全取决于这样一个问题:是否可以通过多个线程写入串行端口。
注意到:我不能测试串口的行为,因为目前我无法访问我校机电一体化实验室的设备,
我使用内核2.6.38-8修补了Xenomai实时子系统(如果重要的话)
我正在将代码移植到传统的Linux与串口通信的方式上。(打开/dev/ttyS0、设置波德率、read()、write()等)目前,第三方库用于与串口通信。
发布于 2012-10-06 07:28:30
您只能打开同一串口一次。第二次审判失败,访问被拒绝。打开端口后,您可以使用端口句柄在不同的线程中使用它。当然,您需要同步这些线程之间的端口访问。
https://stackoverflow.com/questions/12757707
复制相似问题