Xenomai
2016-01-19 10:00
429 查看
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 ):实现对中断的管理和域之间的优先级控制。
嵌入式系统的开发,如果对实时性要求不高,就可以使用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 ):实现对中断的管理和域之间的优先级控制。
相关文章推荐
- WebDriverWait
- 2014 Multi-University Training Contest 1 — D. Task
- svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
- With my girl unexpected gains!
- Daily Scrum – 1/18
- 0.0 人工智能笔记的说明
- Develop--Training(七)Getting Started--支持不同的设备
- [LeetCode217]Contains Duplicate
- Android笔记--对Android的四种LaunchMode和smail文件和scheme和http 的get、post的理解
- illustrator将图片转换成ai路径
- LightOJ1086 Jogging Trails(欧拉回路+中国邮递员问题+SPFA)
- 关于Cookie中的path、domain、expire、secure属性详述
- Factorial Trailing Zeroes
- Gitlab RPC failed; result=22, HTTP code = 413 解决方法
- ftk学习记(waitbox篇)
- DataOutputStream、DataInputStream
- Closed kinematic chain - how to control it
- Aix6.1操作系统安装教程
- 7.4 决策树
- 3.4wait的条件发生变化导致逻辑错误