如何为特定应用选择嵌入式操作系统?

几乎所有现代嵌入式操作系统都是使用某种操作系统(OS)构建的。这意味着该OS的选择倾向于在设计过程的早期进行。许多开发人员发现此选择过程具有挑战性。您如何为特定应用选择嵌入式操作系统?这是不久前潜在客户向我提出的问题。他经过一些过程(一些有条理的指导)来推动他的选择过程。我解释说,这确实是不可能的–太多相互关联的因素使流程图之类的事情无法实现。这个过程就是考虑各种因素,提出正确的问题并权衡答案。那是我可以提供指导的地方。


当我为嵌入式操作系统供应商工作时,被问到怎么做时,我的第一个直觉是:“给我打电话。我会帮你。”我可能有偏见。在本文中,我将尽我所能,以平衡地了解该过程和您的选择。


    您是否完全需要一个       嵌入式操作系统       ?  


对于许多嵌入式应用程序来说,很明显需要一个OS。如果应用程序很复杂并且在高端处理器上运行,则几乎可以肯定,操作系统将是有益的。另一方面,运行在低端芯片上的简单软件根本不需要操作系统。还有其他两种可能性:低端CPU上的复杂软件和复杂处理器上的简单软件。在这两种情况下,操作系统似乎都无法提供太多优势,并且确实可能会妨碍效率。但是,围绕多任务模型构建代码是使其具有可伸缩性的一种好方法,从而在将来某个时候转移到功能更强大的设备和/或需要为应用程序增加更多复杂性的情况下,可以最大程度地减少工作量。


如何为特定应用选择嵌入式操作系统?_医疗科技_互联网医疗


    在哪里可以获得       嵌入式操作系统       ?  


大致而言,有三种获取嵌入式操作系统的方法:


自己写一个


使用“免费”或开源产品


从商业供应商购买/许可产品


选项(1)很少是一个好的选择,因为您的特定需求不太可能如此专业,以致现有产品无法解决。 “重新发明轮子”是一个明智的决定,这是不寻常的。唯一可能的例外是将操作系统编写为学术练习,以充分了解此类产品的工作原理。


    选择标准  


操作系统的选择取决于您可能会问自己或其他人的一系列问题。不难想象,这全都与操作系统的技术有关,而实际上,这些问题主导了整个过程。但是,需要考虑商业因素(例如成本),并且不能忽略个人经验等因素。


    技术因素  


操作系统的技术方面在选择过程中占主导地位。在考虑其他参数之前,需要完全弄清楚这些事项。


 您的应用程序是实时的吗?


实时应用是响应时间至关重要的应用。它可能不会很快,但是需要在可预测的(确定性)时间内响应外部事件;它必须足够快(或慢)。选择操作系统的含义是,实时操作系统(RTOS)最有可能是正确的选择,因为它是专门为满足应用程序需求而设计的。 Linux本质上不是实时的,但是实时扩展可能使其成为可行的选择。


 内存大小是否受限制?


过去,嵌入式系统通常具有很小的存储容量-可能只有几千个。如今,尽管带有微控制器的片上存储器可能仍然有很大的局限性,但配置却更为慷慨。设计签名后,向系统添加更多内存很少是简单的。像Linux这样的重量级OS占用大量内存,因此空间限制确实是一个挑战。大多数RTOS产品重量更轻,并且可能可扩展,这意味着内存仅用于实际需要的功能。


 CPU功率受限制吗?


CPU的功能是在给定时间内它可以完成多少工作,可以执行多少条指令的度量。大多数嵌入式设计的CPU将具有足够的能力,但可能没有余力。任何种类的操作系统都是开销。它的执行使用CPU功能,但不会直接对应用程序功能产生影响。通常,将开销最小化是很重要的。操作系统的效率差异很大,但是RTOS产品倾向于最节俭地使用CPU。


 设备功耗是否成问题?


嵌入式系统的功耗成为重中之重。通常用于延长电池寿命,但也可能受环境因素的影响。从历史上看,功耗被认为是纯粹的硬件问题。现在已经认识到,软件可以极大地优化能源使用。


简单来说,代码越小,所需的内存就越少,从而节省了功耗。同样,代码的效率也会影响所需的CPU能力。实时操作系统可能是紧凑而高效的。


许多系统都包含电源管理功能。这可能仅仅是低功耗模式(如睡眠和挂起)的可用性,但是更高级的电源管理正变得越来越普遍。这可能包括有选择地关闭外设电源以及控制CPU的电压和时钟频率。 Linux和许多RTOS产品都提供了对电源管理的支持。


 您的系统是否有晦涩或自定义的外围设备?


嵌入式应用程序中一些最具挑战性的代码是与外围设备的接口。使用操作系统时,通常将其封装在驱动程序中。大多数RTOS都提供了许多标准设备的驱动程序。 Linux甚至更多,并包括对许多相当晦涩的硬件的支持。


如果您有自定义外围设备,显然将不提供支持,因此需要自定义驱动程序。 RTOS供应商通常会在此问题上提供良好的支持。 Linux驱动程序开发专业知识非常广泛。


 您是否有内存管理单元(MMU)?


大多数高端嵌入式CPU至少具有一个MMU。这允许重新映射和/或保护存储区。 MMU对于部署Linux是必不可少的。如果没有可用的MMU,则不能选择Linux。 RTOS通常不需要MMU,但是如果有的话,许多MTU可以通过促进“轻量级进程模型”(也称为“线程保护模式”)来使用MMU。


 应用程序安全性是一个问题吗?


一些嵌入式应用程序具有安全意识-必须保护代码不受外界干扰。这可以看作是保护每个任务免受其他任务的侵害。 Linux等使用MMU的过程模型是提高安全性的一种很好的方法。如上所述,如果RTOS可以利用MMU,则可以以更少的开销提供几乎相同的安全性。


 您的应用程序需要安全认证吗?


在航空航天,医疗,汽车和工业等许多行业中,都有安全认证计划。获得认证的过程既复杂又昂贵。通常,需要整个应用程序的所有源代码,包括操作系统。因此,拥有OS源代码至关重要。源代码并非始终可用。在某种程度上,要认证的代码的大小会影响过程的成本,因此OS越小越好。


通常不可能仅通过OS认证-评估整个应用程序。但是,某些RTOS供应商可以提供“预认证包”,其中提供了有关OS所需的许多初始文档。当然,选择具有在类似应用领域中使用和认证的“跟踪记录”的OS当然也是明智的。


    商业因素  


尽管工程师喜欢嵌入式软件开发的技术挑战,但此类项目也需要商业考虑。一切都取决于金钱。实施操作系统需要花钱,但是可以得到:


内部开发显然要花钱


商业产品有价格


开源不是“免费的”;有实施成本和持续维护


商业OS产品提供了各种商业模型。例如,装运的每个单元的起始付款可能很低,并且持续的特许权使用费,或者可能会有更大的前期费用,却没有持续的特许权使用费。可接受的模型取决于售价和预计的运输量。


    其他注意事项  


过去的经验是操作系统选择过程中容易被忽视的一个方面。您和您的团队可能以前使用过一个或多个OS,这可能会产生重大影响。


例如,获得有关OS API的详细知识需要花费一些时间,因此能够重复使用此知识是一个很大的好处。如果API是专有的,那么这可能是指向特定产品的有力指针。如果API是标准的,例如POSIX,您仍然可以选择。当然,对令人困惑且僵化的API的不良体验可能会产生相反的效果!


与特定供应商合作的经验是另一个因素。他们的技术支持对您有好处吗?文档到头了吗?源代码是否可用并受到好评?


    多核系统和操作系统选择  


使用多核设计来实现嵌入式系统正变得越来越普遍。从软件角度来看,有两种多核系统:


对称多处理(SMP),其中所有内核都是相同的,并且所有内核都运行一个操作系统。


非对称多处理(AMP),内核不一定相同,每个内核都运行自己的OS。


到目前为止,对于SMP系统,选择操作系统的方法与本文所述的方法相同,另外还要考虑到操作系统必须支持SMP功能。 Linux以SMP形式提供,许多RTOS产品也提供它作为选项。


对于AMP系统,需要根据其特定要求使用上述方法为每个核心选择操作系统。


总体而言,可以看出,对于选择嵌入式OS的问题并没有真正简单的答案。有许多相互联系的因素。重要的是,不仅要关注技术方面的考虑,而且还要考虑商业事务和过去的经验。对于台式计算机,大约有四个操作系统可供选择。在嵌入式世界中,至少有几十个。这是为什么?简而言之,台式计算机几乎都是相同的,但是每个嵌入式系统都是不同的。这种差异在技术和商业上都是如此。因此,需要详细的选择过程。


我们在日常生活中到处都有嵌入式系统。嵌入式系统是经过特殊设计的计算机系统,其本质上包含用于执行特定任务的软件和硬件。移动电话,笔记本电脑,相机,洗衣机,ATMS和直发器等都是嵌入式系统的示例。您可以检查嵌入式系统的医疗应用。现在让我们转向嵌入式操作系统。


如何为特定应用选择嵌入式操作系统?_医疗科技_互联网医疗


    什么是嵌入式操作系统?  


顾名思义,嵌入式操作系统是嵌入式系统的操作系统。它具有有限的功能。通常设计用于某些特定操作来控制电子设备。例如,所有手机基本上都包含一个操作系统,该操作系统在手机处于运行状态时始终会启动。它控制着手机的所有功能和基本界面。还有一些其他程序可以加载到手机上。通常,JAVA Apps在顶部运行。嵌入式操作系统在嵌入式处理器上运行。


    嵌入式操作系统的特点  


嵌入式操作系统的主要特征如下


直接使用中断


无功操作


实时操作


简化的保护机制


I / O设备的灵活性


可配置性


有两种不同类型的操作系统,一种是通用操作系统,其修改方式使其可以在设备顶部运行,或者该操作系统可以自定义编写。操作系统设计的方法包括要么采用现有的嵌入式操作系统并使其适合于嵌入式应用程序,要么我们可以设计和使用特别适合于嵌入式系统的新操作系统。


通过简化操作,实时功能并添加其他必要功能,我们可以使现有操作系统适应嵌入式应用程序。该方法具有熟悉的界面,其缺点是没有针对实时性进行优化。


我们周围最常见的嵌入式操作系统示例包括Windows Mobile / CE(手持式个人数据助手),Symbian(手机)和Linux。如果您的个人计算机的嵌入式操作系统要从个人计算机启动,则在主板上添加闪存芯片。


    嵌入式操作系统的类型  


 单系统控制回路


单系统控制回路是嵌入式操作系统的最简单类型。它就像操作系统一样,但被设计为仅运行单个任务。仍在争论该系统是否应归类为一种操作系统。


 多任务操作系统


顾名思义,该操作系统可以执行多个任务。在多任务操作系统中,有多个任务和进程可以同时执行。如果系统具有多个内核或处理器,则可以执行多个功能。


操作系统在任务之间切换。一些任务等待事件,而其他任务接收事件并准备运行。如果使用的是多任务操作系统,则可以简化软件开发,因为可以使软件的不同组件彼此独立。


 速率单调操作系统


它是一种操作系统,可确保任务在系统中运行可以在特定的时间间隔和特定的时间段内运行。如果不确定,系统软件会发出失败通知,以采取适当的措施。如果系统超额预订,则无法确保此时间限制,此时,运行时可能会发生另一个事件,并且会出现故障通知。


 抢先操作系统


抢占式操作系统是一种多任务操作系统,可解释任务的抢占式优势。优先级较高的任务始终被定义并在优先级较低的任务之前运行。这样的多任务操作系统在增加系统对事件的响应方面是有效的,并且还简化了使系统更可靠的软件开发。系统的设计人员可能能够计算系统中的服务解释所需的时间,并且调度程序还会花费该时间来切换任务。这样的系统可能无法满足系统的期限,并且软件不会意识到错过的期限。抢先式操作系统中的CPU负载可以自然地通过定义较低优先级的任务(该任务仅递增计数器而无其他操作)来衡量。


 实时操作系统


实时操作系统是为实时应用程序提供服务的系统。它处理传入的数据。处理操作系统的时间要求通常以更短的增量或10秒为单位进行度量。它们可能是时间共享的,也可能是事件驱动的。实时操作系统用于小型嵌入式系统。


    实时操作系统的主要功能包括  


可以定义的进程线程


多任务


中断等级


    实时嵌入式操作系统示例  


 VxWorks


它是由风河开发的。


该操作系统的最新版本是VxWorks 6.0。


它是广泛使用的软件操作系统。


目前,有3亿个设备使用此操作系统。


VxWorks的核心或处理器具有可靠性,高性能,低延迟,确定性和可扩展性。


它增加了错误管理的潜力。


它与广泛的POSIX 1003.1,.1b,.1c,


它使用抢占式优先级,并已针对实时和非实时进程进行了调度。


内存受MMU保护。


它减少了上下文切换时间。它仅还原注册窗口。


为了增加响应时间,它会将已注册的窗口保存在寄存器高速缓存中,并用于重复执行的任务。


 微内核


微内核是一种操作系统,由诸如调度,任务切换和设备处理之类的基本必需品组成。


微内核实现了不同的内存技术并保护所有系统组件。


一些微内核通过将软件的所有组件彼此分开来保护内存。


    嵌入式操作系统的应用  


在这里,我们在日常生活中有嵌入式操作系统的不同应用程序。这些应用包括


Symbian:主要在诺基亚的手机中使用。


BlackBerry Operating System:它特别用于BlackBerry Phone,


嵌入式Linux:它用于Android手机和打印机等其他设备。


IOS:在MAC操作系统和其他Apple设备中使用。


Windows Mobile操作系统:在窗口电话中使用。

1
194
0
6

相关资讯

  1. 1、玉骨遥:任敏与肖战的番位之争4682
  2. 2、明星吸烟照被疯传,唐僧最搞笑,王宝强最羞涩,最后一个最帅气3826
  3. 3、《济公3》开播陈浩民:这个出家人喜欢打网语3936
  4. 4、《复仇者联盟4》补拍正式杀青!罗素兄弟发图庆祝5092
  5. 5、王凯如何看待宋运辉:我喜欢处在成长过程中的宋运辉2850
  6. 6、《我的姐姐》未曝光片段:肖央对峙货车司机,表情镇定内心细腻4954
  7. 7、被迫拍裸戏?“黄蜂女”拍美剧倍感屈辱2638
  8. 8、“霞姨”晒《喜剧之王》珍贵幕后照,星爷搞怪,张柏芝清纯粉嫩2936
  9. 9、《闯关东前传》山东探亲闯哥闯姐为高考加油916
  10. 10、《昆塔:盒子总动员》乐翻小朋友家长乐得买单2275
全部评论(0)
我也有话说
0
收藏
点赞
顶部