本介绍摘录自RTEMS中文网
RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操作系统RTOS。 它最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。目前无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。
从体系结构上来看,RTEMS是微内核抢占式的实时系统,他具有下面的优点:
(注1:最小内核指的是只包含BSP、任务调度、内存模块这些功能的内核。它的大小和CPU指令集、外设多 少、二进制代码格式等相关。CPU是ARM7时,产生的ELF格式标准ARM目标可以减少到46kb。通常来说如果只需要最主要的功能,未压缩目标目标可 以控制在60kb(内核+BSP+简单应用),这比起Linux2.4 压缩后还有700K的庞大体积来说,更适合成本体积敏感的应用)
(注2:现在也有hacker主持Tiny RTEMS项目,该项目中,未压缩的最小的RTEMS bin镜像(内核+BSP)只有20kb。该项目将RTEMS id变成了16bit了,此外该项目将BSD TCP/IP换成了LWIP。这样RTEMS变成了能给8bit和16bit用户使用的小型RTOS,COOL!!。)
(注3:如果只是RTEMS可管理的存储空间,rtems.com公布的应用中,基于RTEMS的飞行记录仪提供多达8G的存储空间。)
RTEMS在性能上丝毫不输于VxWorks,他和VxWorks以及RtLinux的性能比较可以参考《RTEMS简介》。他在全球有不少的用户,尤其是在通信、航空航天、工业控制、军事等领域有着非常广泛的应用,在系统实现上,RTEMS和VxWorks以及NucleusPlus的实现基本相同。
RTEMS的官方网站是www.rtems.com,当前最新的稳定版本是4.7.1,开发版是4.9。在国内,RTEMS主要用在航空航天和军工领域。 我们希望这个网站能普及RTEMS知识,帮助RTEMS在民用领域发挥更大的作用。
本站开设的目的主要是在国内推广嵌入式系统知识(主要介绍RTEMS,此外也不排除其他优秀的嵌入式系统比如 eCos、Linux等)。
RTEMS是以线程为基本调度单位的,调度算法基于优先级的抢占式线程调度,支持256个线程优先级。当然RTEMS值hi创建同等优先级线程,相同优先级的线程采用时间片轮转调度。调度器寻找下一个最高优先级就绪线程的时间是o(1),这是实时性得到保障的一个关键机制。 为了增强对用户应用需求的可扩展性,rtems实现了基于线程的任务扩展机制,可在创建任务、上下文切换或者删除任务等系统事件发生时插入用户指定的
最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems) 1、RTEMS(多处理系统实时可执行体)是一个为嵌入式系统而设计的自由的开源实时操作系统。 在缩写词RTEMS取其现在的含义之前,初始时代表导弹系统实时可执行体,
RTEMS 移植指南 porting.RTEMS移植指南.双语.V20131224.pdf RTEMS 的porting文档的原创翻译。 目录 前言 11 1 开发工具 13 2 源代码组织 15 2.1 简介 15 3 CPU型号变种 17 3.1 RTEMS可移植性概述 17 3.1.1 处理器家族 17 3.1.2 主板 20 3.1.3 应用程序 20 3.2 编码问题 2
Rtems简介 RTEMS,a rivail of VxWorks 作者 Ray RTEMS版权所有,转载请注明:来源http://www.rtems.net,作者Ray RTEMS可谓嵌入式系统鼻祖,经过专家的评测,其性能毫不逊色于VxWorks, 远远把RtLinux甩在后面。 正文 RTEMS是前美国军方研制的嵌入式系统, 最早用于美国国防系统,早期的名称为实时导弹系统(Real Time
接触 RTEMS 是 2008 年下半年的事情。当时在设计一些嵌入式系统的解决方案,寻找一个好的中间件,以满足系统多方面的要求。在查阅 ACE 时发现其支持 RTEMS 系统,不了解 rtems 是什么。于是,就用 google 搜索了 RTEMS 这个关键字,发现了新大陆。 最开始是从 www.rtems.net 上学习,发现资料陈旧且疏漏较多;于是就上官方网站 www.rtems.com 直接
RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操作系统RTOS。 它最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military
很久没写过关于RTEMS的文章了。很多朋友最近问我,为什么选择RTEMS,不选择VxWorks,你自己学习就算了,为什么也要拉着别人搞RTEMS。 这些问题略微的有一些复杂,我就专门写篇文章来作答。以前,我做商业项目都是使用FreeRTOS和uC/OS-II的, FreeRTOS和uC/OS-II都差不多,核心代码不过几千行。突出的特点是,好掌握,易上手,在较短的时间内就能上手开发。但是同时带来一
RTEMS的编译 作者 Ray RTEMS版权所有,转载请注明:来源http://www.rtems.net,作者ray@rtems.net 摘要 本节主要介绍RTEMS编译的步骤。 交叉编译环境建立好以后,编译就很简单了,解压rtems的文件夹 $tar xjvf rtems4.6.2.tar.bz2 建立rtems的编译路径: $ mkdir rtems_i386 这里将以38
#include <stdlib.h> #include <stdio.h> #include <bsp.h> #include <rtems/shell.h> static rtems_task user_task (rtems_task_argument ignored) { printf("In User tASK\n"); printf("starting shell
注意,以下博客为我个人目前的理解,不代表正确,仅作参考。 rtems 4.10.2 Device Driver相关的函数 rtems_configuration_table Configuration = { .... CONFIGURE_MAXIMUM_DRIVERS, /* maximum device drivers */ ....
最近看到 OurRTEMS 朋友在博客上留言,希望建一个交流群。原先我以为交流群的作用远不如RTEMS的官方邮件列表来得实在,后来加入了其他的技术群后才发现,群里集中了热爱RTOS的人,热心的网友以及渴望帮助别人或得到别人帮助的人。是个非常不错的交流平台。 RTEMS这款操作系统是一个相对完善的RTOS。国内应用 RTEMS的企业和项目不在少数。对RTEMS本身还是有一定的要求的。从世界的范围来看
已经写了Cygwin下的RTEMS方式的建立,但是思前想后,还是把Linux的也写了吧。 先对比一下cygwin和linux的开发环境的优缺点。 1.cygwin 方式 – 下载相关的 GNU Tools 的 压缩 包并安装; – 编译速度慢,但开发界面友好。 2.纯 linux 方式 – 下载相关的 GNU Tools 的 RPM 包并安装; – 编译速度快,但 Linux 下较难找到合适的编辑
Rtems简介—挑战VxWorks的RTOS RTEMS,a rivail of VxWorks 来源 www.rtems.net 作者 ray@rtems.net RTEMS是前美国军方研制的嵌入式系统, 最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time E
分析一: /* * Simple test program -- simplified version of sample test hello. * * $Id: test.c,v 1.1.1.1 2009/08/06 20:25:58 joel Exp $ */ #include <bsp.h> #include <stdlib.h> #include <stdio.h> rtem
rtems 历史背景及现状 常用的api 和参数介绍 rtems_interrupt_enable rtems_interrupt_is_in_progress rtems_cache_flush_range_l2 rtems_semaphore_create rtems_task_wake_after rtems_fsmount rtems_bdpart_register_from_disk r
开发环境是进行 RTEMS 开发的基础。RTEMS 为开发人员准备了基于Windows和Linux两大操作系统的工具链。 两条工具链都是GNU工具链在不同平台上的移植。本质上都是相同的。 在Windows操作系统下,建立Cygwin的开发环境,在cygwin上编译RTEMS的应用程序, 使用Windows的编辑工具编辑RTEMS的代码。 由于Cygwin是一个Windows下类Linux的环境。所
#include <stdlib.h> #include <stdio.h> #include <bsp.h> static rtems_task user_task (rtems_task_argument ignored) { printf("In User tASK\n"); while (1) { } } rtems_task Init(rtems_
RTEMS版权所有,转载请注明来源www.rtems.net,作者ray@rtems 第 1 节: 介绍 本章介绍了RTEMS开发环境,包括 * RTEMS的目录结构, * GNU Make在 RTEMS 开发环境中的用法 * 示例应用 * RTEMS特性工具 R
问题内容: 如果在多处理器或多处理器计算机上运行,而jvm可能绝对同时运行多个线程(不只是同时出现),那么api方法返回什么?…在上述情况下,它是否会返回当前线程之一是随机的吗? 问题答案: 它返回您当前正在其中运行的线程。如果你有两个核心和两个线程和完全并行运行,要求在同一时间这个方法,它将返回和适当的。 您的理解是正确的-此方法返回的线程始终处于运行状态-因为必须从某个线程调用该线程,
我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出
11.3 协处理器的指令系统 协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助忆时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码。 在协处理器指令在执行过程中,需要访问内存单元时,CPU会为其形成内存地址。协处理器在协处理器指令期间内利用数据总线来传递数据。80287协处理器利用I/O地址00FAH~00FFH来实现其与CPU之间的数据交换,而80387~Pent
问题内容: 我想使用multiprocessing.Pool,但是multiprocessing.Pool不能在超时后中止任务。我找到了解决方案,并对其进行了一些修改。 主要修改-使用 sys.exit(1) 退出工作进程。它杀死了工作进程并杀死了工作线程,但是我不确定这个解决方案是否很好。当进程因正在运行的作业而终止时,我会遇到哪些潜在的问题? 问题答案: 停止正在运行的作业没有隐含的风险,操作
但是我不能在一个计时器中处理不同的“计时器任务”。我试图将计时器任务对象添加到构造函数中,但是当我将新的计时器任务(RemindTask1)对象作为参数(内部类的实例)传递时,出现编译错误。 以下是它如何处理一项任务: 但是我完全被多个任务应该如何创建然后运行所困扰。 但是这不起作用,我不知道出了什么问题。当我将新的RemindTask2()作为参数传递时,我遇到了编译错误。
我对MongoDB中的多对多关系实现有一个特定的问题。 我收集了歌曲和艺术家的作品(数百万份文档)。在这里,这首歌可以被许多艺术家演唱,一个艺术家可以唱许多首歌。所以我在两个集合中都遵循了文档引用的方法。像这样... 1.歌曲集:- 2.艺术家收藏:- 但这里的问题是,在删除艺术家的同时,我必须从歌曲所有文档中的艺术家数组中删除一个艺术家,如果该文档中有艺术家,反之亦然。这会导致原子性问题。我如何