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

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

3天内不再提示

如何选择合适的嵌入式操作系统

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-06-28 15:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着嵌入式设备的复杂性不断增加,软件开发任务已成为典型项目预算的最大组成部分。图形界面、网络协议和数据安全只是设计团队在其定制应用软件之上添加的一些新要求。随着软件负担的增加以及客户对更快响应时间和即时数据访问的需求,操作系统已成为组织和优先考虑软件和硬件交互例程的基本要素。与只有少数操作系统的桌面环境不同,嵌入式设计人员有数百种选择,正确的选择取决于每个项目的特殊需求和要求。

操作系统的基本功能是管理系统的外围设备和调度软件任务,以确保每个程序获得一些处理器时间。文件系统也是标准操作系统的一部分,用于存储软件模块和引导指令。操作系统的另一大好处是为常见的硬件外围设备提供网络软件和驱动程序,从而消除不断的重新发明。然而,嵌入式操作系统与其桌面操作系统完全不同。桌面系统假设有键盘、鼠标、显示器、硬盘和大量内存。但是,嵌入式产品没有这样的标准化。一个嵌入式系统可能没有硬盘和有限的内存,而另一个根本没有用户 I/O。嵌入式操作系统也必须是模块化的,QNX的Neutrino 实时操作系统(见图 1)。在确定操作系统之前,设计人员应该了解调度算法、内存要求、延迟、工具支持和定价模型。

图 1: QNX Neutrino RTOS 采用模块化框架,使设计人员能够为各种处理器架构创建优化的操作软件。

poYBAGK6qjqAffbeAAapIt4oLoE789.png

硬或软

当设计师将每个新项目的要求拼凑在一起时,实时性能是早期考虑的因素之一。操作系统供应商使用“硬”和“软”等术语来描述其系统的实时操作。硬实时系统被安排,因此任务保证在外部事件的精确时间长度内开始。硬实时系统是确定性的。软实时系统一般会列出启动例程的平均时间长度,但有一个小概率是最大时间可以长得多。任务关键型应用程序必须是确定性的。例如,工业执行器、安全气囊控制器,甚至街机游戏都必须在已知时间内做出反应。软实时应用程序通常会在几秒钟内做出响应,但偶尔的缓慢响应并不重要。

实时操作系统的基本架构包括程序接口、内核、设备驱动程序和可选的服务模块。内核是操作系统的核心,提供中断处理程序、任务调度程序、资源共享标志和内存管理。内核的服务是通过调用其应用程序接口 (API) 来请求的。内核在实时操作过程中一直处于活动状态,并且必须保持内存驻留。内核的主要功能之一是处理由外部或内部事件引起的中断。当中断发生时,处理器将控制权转移到中断服务程序,该程序登录中断,向调度程序发送消息,然后返回活动代码。调度程序设置单个任务的执行顺序,以确保较高优先级的任务可以抢占较低优先级的任务以维持确定性响应。最流行的调度技术是抢占式优先调度,其中任务可以中断较低优先级的任务并继续执行直到完成或直到被较高优先级的任务抢占。

开发工具链是选择操作系统的另一个大问题。开发人员将把大部分软件设计和调试工作用于与集成开发环境 (IDE) 交互,以便快速访问编辑器、编译器、链接器、下载器和运行时工具。大多数供应商提供完整的 IDE,包括源代码编辑器、代码管理器、指向编译器和链接器的链接、将代码下载到目标平台的软件,以及一个或多个调试器。软件供应商还提供软件性能分析工具来帮助开发人员分析和可视化软件中的实时活动。其中许多分析工具是可选的,会增加整体工具成本。Green Hills Software提供MULTI 集成开发环境(IDE) 以支持各种操作系统。IDE 软件工具在单个包中包含多个 C 编译器选项、编辑器、配置管理器、代码浏览器和调试器。MULTI 还具有DoubleCheck,这是一个集成的静态分析器,可以隔离由可能不在同一源文件中的代码段之间的复杂交互引起的错误。

节约成本

成本显然是选择嵌入式操作系统时的主要决定因素。由于使用软件基本上没有商品成本,因此供应商可以调整其定价模型以从各种来源产生收入。供应商可以收取初始许可费、每位工程师的开发席位、开发工具、每单位版税、持续支持或重大升级。为了公平地比较价格,必须为所考虑的每个操作系统计算总体拥有成本。计算必须包括计划在产品生命周期内交付的单位数量。尽管商业操作系统可能很昂贵,但节省成本是购买现成产品的重要原因。如果您可以购买并因此消除软件最复杂部分的编码、调试和文档,你应该仔细考虑。供应商将产品技术支持视为商业操作系统的主要优势。他们能够通过将成本分摊给所有客户来为软件的操作系统部分提供持续的支持。

在生命周期分析和与商业操作系统成本相关的“贴纸冲击”之后,设计人员通常还会考虑“免费”开源操作系统。尽管开源软件消除了一些初始成本问题,但仍然存在必须解决的重大问题。潜在的开源用户提出的一个问题是缺乏中央资源来提供类似于商业软件供应商的支持。开发人员通常可以通过 Internet 找到他们问题的答案,但没有人愿意研究和回答特定问题。开源产品被普遍化以适应最广泛的用户,并且可以迫使设计人员修改硬件配置,从而导致嵌入式设备的重复成本更高。还,开源软件不属于公共领域,用户必须遵守个人许可中规定的特定规则,这些规则可能会迫使设计者向专有软件公开源代码。即使存在这些障碍,开源操作系统仍广泛用于嵌入式设计。

占地面积小

选择操作系统时的一个额外考虑因素是在所需的初始硬件占用空间和在需要更新时添加功能的能力之间进行权衡。操作系统必须是可扩展的,以便用户可以选择他们需要的软件系统的那些部分或功能。随着不断变化的需求和嵌入式技术,设计人员希望能够下载新的软件模块以添加或修改功能以供将来更新。Mentor Graphics的Nucleus 实时操作系统可降低嵌入式设备的物料清单成本允许开发人员在多种处理器硬件上部署小至 2k 的内核。借助模块化结构,设计人员可以通过选择可用功能的子集以及支持系统的 ROMRAM 的数量来降低操作系统的初始成本。

嵌入式设计人员最喜欢的捷径之一是使用商用现货 (COTS) 模块启动项目,以消除大部分硬件开发和测试。通过为目标硬件选择带有板级支持包的操作系统,可以将同样的快捷方式扩展到软件。例如,LynuxWorks为其LynxOS实时操作系统提供150 多个 COTS 处理器板的板支持包。这些封装包括 ARM、PowerPC、x86、MicroBlaze 和 MIPS 处理器板。这种方法可以缩短整体开发进度,使设计团队能够专注于嵌入式项目的专有部分。

随着客户对通用连接、更快的响应时间、复杂的功能和即时数据访问的需求扩展到越来越多的设备,设计人员可以期待实时操作系统软件成为未来嵌入式产品的标准。幸运的是,实时供应商和开源集合提供了大量现成的、可立即运行的软件包,以适应大多数嵌入式配置。挑战将是分析您的要求,以使操作系统与具有足够增长空间的应用程序相匹配,同时最大限度地减少成本和开发工作。

审核编辑:郭婷

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

    关注

    135

    文章

    9501

    浏览量

    388841
  • 嵌入式
    +关注

    关注

    5186

    文章

    20159

    浏览量

    329003
  • 操作系统
    +关注

    关注

    37

    文章

    7329

    浏览量

    128657
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    单片机的操作系统

    单片机操作系统主要分为实时操作系统(RTOS)和嵌入式操作系统两类,以下是常见选择: 实时操作系统
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    实时嵌入式操作系统(Real-Time Embedded Operating System)是专门设计用于嵌入式系统的实时操作系统
    发表于 11-13 06:30

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 812次阅读

    入行嵌入式应该怎么准备?

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/C++语言将使你能够理解和编写底层驱动程序、操作系统以及与硬件交互的代码。对于嵌入式
    发表于 08-06 10:34

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在
    发表于 06-20 09:46

    嵌入式开发,如何选择适合的系统

    嵌入式ARM开发中,面对多种操作系统选择,如何做出最适合项目的决策?本文将为您梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择
    的头像 发表于 05-20 11:32 913次阅读
    <b class='flag-5'>嵌入式</b>开发,如何<b class='flag-5'>选择</b>适合的<b class='flag-5'>系统</b>?

    RT-Thread嵌入式操作系统专业培训班-深圳站重磅开启!

    RT-Thread官方将在深圳举办为期三天的嵌入式操作系统专业培训班!本次培训将深入讲解RT-Thread嵌入式实时操作系统的核心技术与实战应用,助力开发者快速掌握RTOS开发精髓。无
    的头像 发表于 04-11 18:18 655次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班-深圳站重磅开启!

    操作系统适配,飞凌嵌入式T527核心板打造高效开发新体验

    飞凌嵌入式为基于全志T536处理器开发设计的FET527N-C核心板适配了全新升级的ForlinxDesktop22.04操作系统,这一举措不仅能够为用户带来了更加流畅、稳定的操作体验,还极大地提升
    的头像 发表于 03-20 14:33 1141次阅读
    新<b class='flag-5'>操作系统</b>适配,飞凌<b class='flag-5'>嵌入式</b>T527核心板打造高效开发新体验

    如何正确选择嵌入式文件系统

    Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提升数据稳定性和
    的头像 发表于 03-17 11:35 868次阅读
    如何正确<b class='flag-5'>选择</b><b class='flag-5'>嵌入式</b>文件<b class='flag-5'>系统</b>?

    RT-Thread嵌入式操作系统专业培训班来上海啦!

    RT-Thread官方将在上海(RT-Thread大本营)发起为期三天的嵌入式操作系统专业培训班!本次培训将会深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景
    的头像 发表于 02-27 17:27 829次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班来上海啦!

    RT-Thread嵌入式操作系统专业培训班登陆郑州!

    RT-Thread官方将在河南-郑州发起为期三天的嵌入式操作系统专业培训班!本次培训将深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景。无论您是刚接触
    的头像 发表于 02-12 18:28 723次阅读
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班登陆郑州!

    2025嵌入式操作系统专业培训班正式启动!

    RT-Thread官方将在河南-郑州发起为期三天的嵌入式操作系统专业培训班!本次培训将会深入讲解RT-Thread嵌入式实时操作系统的核心概念、实战技巧和应用场景!无论企业团队/工程师
    的头像 发表于 01-09 18:46 1371次阅读
    2025<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>专业培训班正式启动!

    ARM嵌入式实时操作系统比较

    嵌入式系统领域,实时操作系统(RTOS)是确保任务按时完成的关键技术。ARM架构因其低功耗、高性能的特点,在嵌入式系统中得到了广泛应用。本
    的头像 发表于 12-28 09:15 2455次阅读

    新手怎么学嵌入式?

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