如何选择实时操作系统_第1页
如何选择实时操作系统_第2页
如何选择实时操作系统_第3页
如何选择实时操作系统_第4页
如何选择实时操作系统_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何选择实时操作系统 很难作决定是买一个实时操作系统,还是自己动手做。如果要买的话,决定买哪一种、 从哪家供应商买仍然充满变数。 嵌入式软件工程师总是几乎完全从零开始开发应用程序。为什么会那样?如果从我们 的朋友硬件工程师那里取点儿经的话可能大有裨益。他们开始做一项新设计时,总是 选择现成的集成电路,只有到最后不得已时才自己设计逻辑电路。因此,对我们来说,重 用他人的工作成果以达到目标的第一步就是要选择一种实时操作系统(RTOS) 。然而当你 选择 RTOS 时很有一些需要考虑的问题,一个清晰的思路无疑有助于成功地作出决定。 实时操作系统对我来说真的必要吗? 在一头扎进如何选择一个实时操作系统的讨论之前,大多数人应该问问自己:为什么 需要实时操作系统?是否所有的嵌入式软件系统在实时操作系统的支持下工作得最好?当 然不是。有很多简单的产品,不够大也不够复杂,根本负担不起额外的开销。 有关是否使用 RTOS 的争论非常类似于是否使用高级语言的争论。正象高级语言一样, RTOS 使你可以更快地开发产品。它可能要求一些额外的开销,但是随着技术的进步,这 种开销在变小。 正如有的应用仍推崇汇编语言,也存在这样一些应用,它们很简单,仅需求很少的一 点操作系统服务。在这种情况下,更简单的结构比如轮转调度之类以状态机为基础的 函数可能就足够了。难道你能指望在你的面包机里安装一个实时操作系统吗?除此之 外,你应该考虑 RTO S。 自建还是购买? 在“嵌入式”世界里,就一个工作组该购买还是自建实时操作系统展开了生动的讨论。 不幸的是,我们非常缺乏有效的统计数据。我认为在大多数情况下,购买 RTOS 是较好的 选择。我这样说的时候,请注意我与 R TOS 工业界的任何公司没有任何私人或者职务关系。 关于购买 RTOS 的争论还有一个小小的轶闻。以前我曾在一个为医疗设备开发嵌入式 软件的项目组工作。我们使用的是 CMX 公司的 CMX-RTX。在嵌入式开发者一系列可能 的选择中,这个 RTOS 的特征是很典型的。随 OS 还提供了 11,000 行的源代码。想想吧, 用 CMX 公司卖得的两千美元你能定义、设计、实现并测试完成如此的产品吗?我看不大 可能。 然而,坚持从零开始自建 RTOS 的人仍与购买现成专用 RTOS 的拥护者争论不休。在 性能绝对至关重要的场合,写自己的实时操作系统可能允许你花费巨大代价换取有限的百 分之几的速度提升。 另外,特定的工业(比如医疗设备、安全系统等)对软件有特定的规则或标准要求。 在某些情况下,现成的操作系统满足不了这些要求。这时也只能选择自建。 最后,在嵌入式系统中,为了使用专用代码而安装的基础系统相当大。把老代码剥离 出来移植到新的操作系统上难说是个明智的主意。而将产品移植到一种新的微处理器上是 说得通的。如果该专用 RTOS 尚未被移植到新的微处理器上,这可能是考虑使用现成 RTOS 的一个好时机。 工具的相互关系 一个工程师选择实时操作系统时如果不考虑其余与之相关的工具是不行的。微处理器、 在线仿真器(ICE) 、编译器、汇编器、连接器、调试器以及模拟器都这样或那样地影 响着操作系统。 有些在线仿真器供应商提供其 ICE 与实时操作系统接口的软件。检查一下你的 ICE 是 否能与你的 RTOS 协同工作,这在调试那些最隐蔽的小错误(bugs)时是很有用的。然而, 重要的是要了解在线仿真器的操作对性能的影响。有时当 ICE 执行操作时增加了额外的开 销,比如中断某行源代码在某个任务中的执行。 对给定微处理器家族上的某种操作系统来说,很可能 OS 供应商只支持所有可用编译 工具(包括编译器、汇编器和连接器)的一个子集。应该确认供应商支持你所用的。你应 该避免我们项目组当初选择一种现成的实时操作系统所碰到的灾难。OS 供应商将我们选 择的 RTOS 以源代码的形式提供给了我们,但是我们没有考虑到的一个问题是这种 RTOS 与我们使用的编译器不能合作。经过六周的艰苦努力,负责修改 RTOS 源代码的工程师终 于完成了任务。 选择准则 除了开发工具箱中其他工具的影响之外,如果你能很好地组织在调查研究 RTOS 期间 所搜集的信息,作出选择就会容易一些。首先列一份可供选择的 RTOS 清单。到选择 RTOS 时,你可能已经选定了微处理器。据此你可以立即划掉不支持你的 MCU 的 RTOS 从而得到较短的清单。如果你选择了无所不在的 68000 或者 x86 系列,则需要更多的准 则来帮助你作出选择。 有了一个短的清单之后,艰难的工作才真正开始。首先,要决定对你的应用来说哪条 准则是真正重要的。本文讨论了选择时要考虑的几条重要特征,然而每一个应用开发都有 差异,需要认真考察到底什么是最重要的。应该根据各项选择准则列一个表,针对每个项 目评价每种 RTOS。甚至在填完了整张表格之后,模模糊糊的仍然不知该选哪一个,这种 事情确实很难干脆果断。参与选择过程的每个人应该对这个表格展开讨论。讨论之后拿出 决定或者拿出作决定的计划。 在选择 RTOS 的过程中有两个基本的因素。 第一组基本准则围绕着一个特定产品的细节。你现在正在使用的工具哪些要与 RTOS 一起继续使用?把所有的决定建立在如此简单、短视的判断上不可能最好。开阔视野,将 眼光扩展到公司的整个产品线。这样的话,你需要考察 RTOS 与整个产品线的兼容性。该 RTOS 在将来的几年中仍会有所发展吗?该 RTOS 与你期望选用的其他微处理器兼容吗? 第二,你可以创建一个实现极少特性的框架,但这样做有点违背购买现成 RTOS 的目 的。当深入 RTOS 的结构之后,一系列问题始终困扰着开发者。这些问题包括:该 RTOS 可以动态地创建和删除任务吗?一个任务能同时等待多个事件吗?任务有多少优先级?很 难预料在整个应用的设计过程中需要 RTOS 的哪些服务。一般来说,很多特性可以实现你 想要的大多 数功能。如果有困难,要积极地资讯供应商的技术支持和应用工程师。如果你 有使用其他 RTOS 的经验,现在要用一种新的 OS,试着在新的 RTOS 中找找那些你熟悉 的特性。因为不同的供应商往往用不同的方式解决同一个问题。最好选择其中与你过去熟 悉的方式接近的那种。 内核要求的最小存储器大小实时操作系统可以装入小得令人惊讶的内存中。尽管如此, 当供应商给出一个内核要求的最小存储器大小时,很重要的一点是要了解这个内核中包括 了什么。最小的内核经常是仅仅支持很少的特性,而典型的配置可能产生大得多的内核。 如果你的设计非常在乎 RAM 或 ROM 的大小,一定要澄清这个问题。有时供应商可以提 供一份详细的列表,说明了创建包含不同服务的内核分别需要多大的 RAM 和 ROM。 性能 对所有的项目来说,性能无不是个大问题。但是要了解 RTOS 对系统的影响却不那么 容易。当你比较供应商提供的 benchmark 时你要明白他们是要测试什么。供应商使用的 是什么评估板?微处理器的时钟频率是多少?使用的什么存储系统?存储器访问使用了几 个等待周期?只有弄清楚了这些你才能作出公平的对比。 有几种性能建模工具可以帮助你建立系统性能模型,供应商是 Tri-Pacific Software 和 CARDtools Systems 之类。随着设计的深入还要继续细化性能模型。 软件组件和设备驱动程序 在 1998 年 11 月的嵌入式系统会议上,Wind River Systems 的合伙创始人之一 Jerry Fiddler 描绘了将来十年嵌入式系统的图景网络化的、无所不在的普通设备。到 处都会有计算机,但计算机的外表不再是一成不变的。为了使美景成真,嵌入式系统应该 通过各种标准加大开发需求的互操作性,开发者可能要依赖于他人开发的组件。假如你的 应用需要通信协议、服务、库或者其他组件(如 TCP/IP、HTTP、ftp、telnet、SNMP、CORBA 和图形) ,现看看哪里可以获得它们。类 似的,在设计中用到现成的板卡或 IC 时,要确定是否可以得到设备驱动程序。 有些操作系统供应商提供这些特性或驱动程序的方式不同,可能作为操作系统的一部 分,也可能作为可选配件。另外,这些服务也可以从第三方供应商获得。与供应商交涉时, 要弄清楚你的 RTOS 里集成了哪些组件。 调试工具 RTOS 供应商可能有有助于找到错误的调试工具,这些错误(比如死锁、忘了放信号 灯等等)用其他源码级调试器更难于发现。许多工具允许开发者在任务之间相互传递信号 灯时、在任务切换时和发生中断时进行 Watch(以增加 CPU 开销为代价) 。 少数供应商提供给用户的是集成开发环境。对主机-目标式调试器来说,应用在 RAM 中运行是它工作得很好。如果你希望从 ROM 运行代码,看看这种调试服务还有多大用处。 标准兼容性 你正在考察的 RTOS 支持一般的标准吗?例如,RTOS 服务有一个 POSIX 标准。即使 大多数开发者不需要 POSIX,这也可以作为一个考虑因素。如果你在开发安全性敏感的系 统,应该考虑一下该行业所要求的安全标准。有些 RTOS 供应商已经开始认证他们的产品。 技术支持 购买了 RTOS 之后,你还需要技术支持。RTOS 供应商提供多种支持渠道,其中都有 电话和/或电子支持。但是要确认在你购买之后这种支持能持续多久。最好能感受一下供应 商技术支持的质量如何。如果你对 RTOS 完全是新手,供应商的培训就很有用了。这种培 训一般是上门服务。如果供应商能提供高质量的附带几个好实例的文档,那么对培训的要 求就可以降低一些了。 源代码还是目标代码? 有些供应商当你购买了一个开发许可时会提供给你全部源代码。而其他的仅提供目标 代码。第一次使用没有源代码的 RTOS 可能会令人不安。其实这两种方式都能开发出优秀 的产品。如果你对 RTOS 的源代码大动手脚而不仅仅是作简单的修改,赶快住手,拿起电 话叫技术支持吧。若对 RTOS 作重大的改动,岂不是违背了购买他人现成实时操作系统的 初衷? 对那些没有源代码的来说,也不必担心无法配置内核。供应商会在头文件中给出必要 的常量使开发者可以根据需要微调内核。 许可 购买某些高级的 RTOS 属于重大的商业事务,有许多费用要考虑。典型情况是开发工 具的费用由实时操作系统供应商来承担,并为 RTOS 发放许可证以开发产品。有的供应商 一次性地收取一大笔费用,而有的供应商的收费遍及每用户、每平台、每产品、每位置。 我干过的项目经历了这两个极端。不过说不上这两种方式哪种更好,只要你明白为什么掏 钱就行了。 声誉 还有一点是要了解该 RTOS 供应商的声誉。这也许有些困难,这里有一些建议也许有 所帮助。 首先,打电话了解他们。然而供应商肯定怕给你坏印象,因此与真正的用户交流才能 得到对该操作系统质量的较好的认识。下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论