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
    +关注

    关注

    134

    文章

    8651

    浏览量

    361773
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288380
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121872
收藏 人收藏

    评论

    相关推荐

    再谈嵌入式实时操作系统

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

    #stm32 #嵌入式开发 #linux #操作系统

    操作系统嵌入式开发
    又调皮
    发布于 :2024年04月01日 10:22:56

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

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

    有无操作系统嵌入式Linux驱动设备有何区别?

    有无操作系统嵌入式Linux驱动设备有何区别? 嵌入式系统是指集成电子设备上的计算机系统,通常用于控制、监测、
    的头像 发表于 10-29 17:29 444次阅读

    实时操作系统的滴答Tick设置多少才合适

    实时操作系统的滴答Tick设置多少才合适? 介绍实时操作系统中Tick的设置。 在实时操作系统中,Tick是指操作系统的时间基准,它是
    的头像 发表于 10-29 16:33 529次阅读

    一种嵌入式操作系统—VxWorks

    电子发烧友网站提供《一种嵌入式操作系统—VxWorks.pdf》资料免费下载
    发表于 10-27 10:59 0次下载
    一种<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>—VxWorks

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的设备,将C
    发表于 10-11 13:47

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-28 06:59

    嵌入式Linux应用开发的完全手册

    是怎样和硬件发生作用的。 同样,对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一·步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点:先掌握各个硬件部件的简单编程
    发表于 09-25 07:12

    嵌入式操作系统IJLC/OS一Ⅱ在通信电源监控中应用

    的查询分析和统计等功能也必不可少。通信电源设备运行参数多,实时效果强,在设备当中选择功能强大的控制芯片.应用嵌入式操作系统.使其尽可能地发挥出强大的软件控制功能,满足用户对通信电源控制的各种要求。与传统
    发表于 09-20 06:46

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-11 07:24

    基于优先级调度的嵌入式实时操作系统内核详解(下)

    基于优先级调度的嵌入式实时操作系统内核详解(下)
    的头像 发表于 09-06 12:46 500次阅读
    基于优先级调度的<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>操作系统</b>内核详解(下)

    好书推荐|《OpenHarmony嵌入式操作原理与应用》

    《OpenHarmony嵌入式操作原理与应用》一书以物联网应用为 主题,通过瑞芯微 RK2206芯片为核心控制器,搭配几个互联网的应用项目讲解,能让用户能对OpenHarmony(开源鸿蒙)轻量级
    发表于 06-27 23:12

    选择实时操作系统(RTOS)的要点详解

    对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。
    发表于 05-30 09:45 777次阅读

    什么是ARM-Linux嵌入式操作系统移植呢?

    什么是ARM-Linux嵌入式操作系统移植呢?
    发表于 05-16 10:22