Xenomai是linux内核的一个实时开发框架,可生成实时线程,基本能达到硬实时要求。
生成实时线程代码如下
pthread_attr_tsvattr;
pthread_t svtid;
pthread_attr_init(&svattr);
pthread_attr_setdetachstate(&svattr,PTHREAD_CREATE_JOINABLE);
pthread_attr_setinheritsched(&svattr,PTHREAD_EXPLICIT_SCHED);
pthread_attr_setschedpolicy(&svattr,SCHED_FIFO);
pthread_attr_setschedparam(&svattr,&svparam);
errno= pthread_create(&svtid, &svattr, &server, NULL);
if(errno)
fail("pthread_create");
Xenomai 进程间通信方式分成Xenomai域内的IPC以及Xenomai域和Linux域之间的IPC,采用RTIPC的方式,给用户空间提供socket接口,实时应用通过调用对应的接口可以避免切换到Linux域而导致实时性降低。
进程间通信用socket接口时,在linux下可采用select进行多路复用,参考代码如下:
FD_ZERO(&rset);