0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何选择嵌入式操作系统

星星科技指导员 来源:嵌入式计算设计 作者:Colin Walls 2022-06-30 10:41 次阅读

几乎所有现代嵌入式系统都是使用某种操作系统 (OS) 构建的。这意味着该操作系统的选择往往发生在设计过程的早期。许多开发人员发现这个选择过程具有挑战性。您如何为您的特定应用选择操作系统?

你需要一个操作系统吗?

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

pYYBAGK9DV-AH84fAAFIbNY1snA602.png

你在哪里可以获得操作系统?

大致而言,有三种方法可以获得嵌入式操作系统:

自己写一个

利用“免费”或开源产品

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

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

选择标准

操作系统的选择取决于您可能会问自己或他人的一系列问题。很容易想象这完全是关于操作系统的技术问题,事实上,这些问题主导了这个过程。但是,需要考虑商业因素——比如成本——并且不能忽视个人经验等因素。

技术因素

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

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

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

内存大小有限制吗?

过去,嵌入式系统的内存容量通常非常小——可能只有几 K。现在,有一个更加慷慨的规定,尽管带有微控制器的片上内存可能仍然非常有限。在设计签署后向系统添加更多内存并非易事。更重量级的操作系统,如 Linux,非常需要内存,因此空间限制是一个真正的挑战。大多数 RTOS 产品更轻量级并且可能具有可扩展性,这意味着内存仅用于实际需要的功能。

CPU 功率有限制吗?

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

设备功耗是个问题吗?

嵌入式系统的功耗成为优先事项越来越普遍。这通常用于保持电池寿命,但也可能出于环境考虑。从历史上看,功耗被认为是纯粹的硬件问题。现在人们认识到,软件可以极大地促进能源使用的优化。

简单来说,代码越小,所需的内存就越少,从而节省电力。同样,代码的效率对必要的 CPU 能力有影响。RTOS 可能是紧凑和高效的。

许多系统包括电源管理功能。这可能只是低功耗模式(如睡眠和挂起)的可用性,但更高级的电源管理正在变得普遍。这可能包括外围设备的选择性断电以及 CPU 电压和时钟频率的控制。Linux 和许多 RTOS 产品都支持电源管理。

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

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

如果您有自定义外围设备,显然将无法获得支持,因此需要自定义驱动程序。RTOS 供应商通常会在这方面提供良好的支持。Linux 驱动程序开发专业知识相当广泛。

你有内存管理单元(MMU)吗?

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

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

一些嵌入式应用程序具有安全意识——必须保护代码免受外部干扰。这可以看作是保护每个任务免受其他任务的影响。Linux 等采用的进程模型使用 MMU,是提高安全性的一种非常好的方法。如果 RTOS 可以使用 MMU,如上所述,这提供了几乎相同的安全性和更少的开销。

您的应用程序是否需要安全认证

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

通常不可能只对操作系统进行认证——对整个应用程序进行评估。但是,一些 RTOS 供应商可以提供“预认证包”,其中提供了有关操作系统所需的大部分初始文档。当然,选择具有在类似应用领域使用和认证的“跟踪记录”的操作系统也是明智之举。

商业因素

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

内部开发显然要花钱

商业产品有价格

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

商业操作系统产品提供各种商业模式。例如,每个发货单位的起始付款和持续特许权使用费可能较低,或者预付费用可能较高且没有持续特许权使用费。可接受的型号取决于售价和预计的出货量。

其他注意事项

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

例如,一个操作系统的 API 的详细知识需要一些时间来获得,因此能够重用这些知识是一个很大的好处。如果 API 是专有的,这可能是指向特定产品的强指针。如果 API 是标准,如 POSIX,您仍然可以选择。当然,使用混乱且不灵活的 API 的糟糕体验可能会产生相反的效果!

与特定供应商合作的经验是另一个因素。他们的技术支持好吗?文档是否符合要求?源代码是否可用并得到很好的评论?

多核系统和操作系统选择

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

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

非对称多处理 (AMP),其中内核不一定相同,并且每个内核都运行自己的操作系统。

对于 SMP 系统,操作系统的选择是按照本文迄今为止描述的方式进行的,另外一个因素是操作系统必须支持 SMP 功能。Linux 以 SMP 形式提供,许多 RTOS 产品也提供它作为选项。

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

结论

总的来说,可以看出对于选择嵌入式操作系统的问题没有真正简单的答案。有许多相互关联的因素。不仅要关注技术方面的考虑,还要考虑商业问题和过去的经验,这一点很重要。

对于台式计算机,有大约四种操作系统可供选择。在嵌入式世界中,至少有几十个。这是为什么?简而言之,台式计算机都大同小异,但每个嵌入式系统都不同。这种差异既是技术上的,也是商业上的。因此需要详细的选择过程。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304815
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209328
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123283
收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统
    发表于 12-12 10:51

    什么是嵌入式操作系统?

    什么是嵌入式操作系统? 想象一下,如果一个智能设备,比如你口袋里的智能手机,是一个有头脑的机器人,那么嵌入式操作系统(Embedded Operating System,简称EOS)就
    发表于 11-08 15:07

    嵌入式 Linux 操作系统配置

    随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作
    的头像 发表于 11-06 10:22 334次阅读

    新书发布——《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》

    我们非常高兴地宣布,由郑苗秀、沈鸿飞和廖建尚编著的《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》一书正式发布。本书的编写团队由多位在嵌入式和实时操作系统领域有着丰富经
    的头像 发表于 09-03 08:06 572次阅读
    新书发布——《RT-Thread<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>操作系统</b>内核、驱动和应用开发技术》

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件
    的头像 发表于 09-02 09:11 479次阅读

    “第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束

    嵌入式系统是电子信息产业的基础,是智能系统的核心。大模型催生AI走入千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制造为代表的智能嵌入式
    的头像 发表于 08-30 17:27 421次阅读
    “第六届国产<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>技术与产业发展论坛”圆满结束

    开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束

    嵌入式系统是电子信息产业的基础,是智能系统的核心。大模型催生AI走入千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制造为代表的智能嵌入式
    发表于 08-30 17:24

    嵌入式系统中的实时操作系统

    嵌入式RTOS是嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。在本节中,您将了解嵌入式软件开发人员使用哪些流行RTOS以及它们运行的嵌入式硬件平台。
    的头像 发表于 08-20 11:28 481次阅读

    RT-Thread出席第六届中国嵌入式技术大会,共话嵌入式操作系统与智能工业

    第六届中国嵌入式技术大会将于8月27-28日在深圳会展中心(福田)1号馆举行。本届大会以“AI与开源,开启嵌入式系统智能新时代”为主题,聚焦人工智能与嵌入式应用、
    的头像 发表于 08-03 08:35 397次阅读
    RT-Thread出席第六届中国<b class='flag-5'>嵌入式</b>技术大会,共话<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>与智能工业

    【峰会同期活动】第六届国产嵌入式操作系统技术与产业发展论坛即将召开

    每年一度的国产嵌入式操作系统论坛即将在杭州滨江举办,今年是第六届了,又是中国嵌入式系统新朋老友相聚的时刻。大模型催生AI走人千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制
    的头像 发表于 08-01 08:36 362次阅读
    【峰会同期活动】第六届国产<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>技术与产业发展论坛即将召开

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    每年一度的国产嵌入式操作系统论坛即将在杭州滨江举办,今年是第六届了,又是中国嵌入式系统新朋老友相聚的时刻。大模型催生AI走人千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制
    发表于 07-26 10:54

    嵌入式系统的外设器件选择

    作者:DigiKey Editor 嵌入式系统除了最重要的为处理器选择之外,配合的相关外设器件也是嵌入式系统的重要组成部分,包括内存、时钟(
    的头像 发表于 05-05 09:38 897次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的外设器件<b class='flag-5'>选择</b>

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式
    的头像 发表于 04-09 17:27 787次阅读
    再谈<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>操作系统</b>

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项
    的头像 发表于 03-29 08:05 348次阅读
    瑞萨CTSU程序在向<b class='flag-5'>嵌入式</b>OS<b class='flag-5'>操作系统</b>移植时的注意事项

    请问ADuC7060能否移植uCOS II嵌入式操作系统

    我想问一下ADuC7060能否移植uCOS II嵌入式操作系统
    发表于 01-15 06:59