Xenomai

http://blog.csdn.net/robertsong2004/article/details/43889249

嵌入式系统的开发,如果对实时性要求不高,就可以使用Linux自身的实时补丁实现软实时性。

但是在需要硬实时的情况下,通常是双系统来做,一个硬实时的RTOS加上一个Linux,

实时任务都在RTOS上跑,其他的任务在Linux上,好处是能保证系统的实时性,坏处是系统间的通讯需要额外的设计,如使用共享内存的方式,同时实时OS需要独占一部分资源,同时开发及调试的难度比较高。

与之相比,Xenomai相比的好处就是都是在Linux的平台上实现,无论是内核态下还是用户态下都可以实现硬实时性(进程上下文切换最坏时间能控制在100us左右,在某开发板上实测的的结果),并可以最大限度的复用已有的Linux资源,同时编程的风格以及调试的手法都比双OS的方式来的简便。坏处就是Footprint比较高,在IoT对系统资源有严格控制的情况下,如数百KB的RAM使用量等是不适用的。

Xenomai 实时内核为开发强实时应用提供了丰富的功能,主要包括实时线程调度与管理、用户空间实时任务支持、线程同步服务、时钟服务、中断服务、动态内存申请和实时对象注册服务等。

http://www.xenomai.org/documentation/xenomai-2.6/html/api/

 http://blog.sina.com.cn/s/blog_60b9ee1d01019t77.html

 http://blog.csdn.net/cyberlabs/article/details/6988811

Adeos在多个操作系统之间提供了一个灵活的硬件资源共享的环境。

主要实现方式是通过(domain)和中断管道(Interrupt Pipe )。

Adeos的主要工作就是管理硬件的中 断,根据域的优先级依次执行相应域的中断服务程序,从而驱动域内的系统运行;同时,Adeos还提供域之间的通信机制、实现域的调度等。

(domain):在基于Adeos的系统中,每个操作系统都在独立的域内运行(但不一定所有的域内实现的都是操作系统,也可以是完成其它功能的软件实体),每个域可以有独立的地址空间和类似于进程、虚拟内存等的软件抽象层,而且这些资源也可以由不同的域共享。

中断管道(Interrupt Pipe ):实现对中断的管理和域之间的优先级控制。

 

你可能感兴趣的:(Xenomai)