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

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

3天内不再提示

如何选择您的嵌入式系统操作系统:选择指南

陈游斗 来源:半导体资本 作者:半导体资本 2022-07-14 08:17 次阅读

When and where it makes sense to use bare-metal, an RTOS, and Linux.

在上一篇文章“如何选择您的嵌入式系统操作系统:操作系统特性”中,我们讨论了团队在选择操作系统时会权衡的系统特性。我们看到产品的生命周期成本、物理特性、实时性能、库集成和安全性等特性发挥了作用(仅举几例)。今天的文章将准确探讨何时何地使用裸机、RTOS 和 Linux 是有意义的。请记住,这些是一般性指导方针,会因行业而异,甚至因产品而异。

何时使用裸机(无操作系统)

当您查看有关连接、物联网机器学习和其他前沿主题的营销头条时,您可能会认为每个嵌入式系统都需要一个操作系统。不幸的是,这种印象与事实相去甚远!虽然许多尖端技术可能受益于操作系统,但您可以在没有 RTOS 或 Linux 的情况下使用相当多的应用程序。如果您查看2019 年嵌入式市场调查,您会发现约 50% 的项目是裸机!

在几种情况下,不使用操作系统会很有意义。首先,如果您使用的是 8 位或 16 位微控制器,您几乎总是希望使用裸机或使用轻量级协作调度程序。许多操作系统开发人员不会将他们的软件移植到更小的架构上,因为这些系统已经受到处理器和资源的限制。添加操作系统通常会消耗太多时钟周期并使系统效率低下。

接下来,裸机解决方案在微控制器引脚数较少且可用闪存和 SRAM 有限的应用中非常有意义。在资源受限的环境中工作时,每个字节和每个时钟周期都会对产品是否可用产生影响。如果微控制器资源有限,最有效的解决方案可能是没有操作系统。

最后,如果您正在开发一个没有任何连接或高性能处理需求的“简单”控制应用程序,那么裸机可能对您的应用程序有意义。当今在嵌入式系统中使用操作系统的重要驱动因素之一是需要支持基础设施代码。例如,连接互联网的传感器必须连接到云、管理安全分区、执行安全更新、运行 DSP 算法等。操作系统可以帮助管理所有这些活动的时间和资源,但您可能不需要如果您没有所有这些东西,请使用操作系统。

何时使用 RTOS

当微控制器的板载资源达到 40 MHz 的最低时钟速度、至少 64 KB 的闪存和 8 KB 的 RAM 时,使用操作系统的大门就开始了。减少任何东西,您将花费更多时间来满足 RTOS 的需求,而不是应用程序的需求。例如,当您使用 RTOS 时,每个任务都有自己的堆栈。堆栈至少需要 512 – 1024 字节的 SRAM。如果您的设计需要六个任务,您将很快耗尽内存。您可能需要更多的闪存和 RAM 来构建合适的系统。

当我决定是使用 RTOS 还是使用裸机时,我会问自己几个问题:

添加 RTOS 会简化软件架构吗?

添加 RTOS 会提高软件的可维护性吗?

应用程序的实时性能会提高吗?

RTOS 是一种应该为应用程序和整个软件开发生命周期提供价值的工具。如果 RTOS 是一个障碍,那么不应该仅仅因为我想使用它就使用它。

在某些特定的应用程序中,使用 RTOS 会立即变得有意义。例如,如果我正在开发物联网产品,我几乎总是使用 RTOS。这是因为 RTOS 提供了工具和机制来轻松管理低级资源并将应用程序分解为半独立的程序。当应用程序很复杂时,将应用程序分解为任务很有意义。例如,物联网产品通常需要几个任务来管理连接,更不用说终端应用了。另一个例子是有显示器的设备,尽管有时这些应用最适合多核处理器。

何时使用 Linux

近年来,在嵌入式系统中使用 Linux 已成为一种流行的选择。Linux 受欢迎的部分原因在于它提供了一个功能齐全的操作系统,并附带了所有的花里胡哨。Linux 带有大量的库和特性。开发人员可以利用多任务处理甚至内核的实时补丁。此外,运行 Linux 的硬件成本在过去五年中大幅下降,使其成为特定应用程序的令人兴奋的解决方案。

在查看一个项目是否可以使用嵌入式 Linux 时,我考虑了几点。首先,产品必须能够支持硬件的财务成本。我最近有一个客户,我第三次帮助重新设计他们的产品,因为前两位设计师无法满足制造价格目标。该产品的目标受众愿意为该产品支付大约 40 美元。最初的设计师使用 Linux 构建了一个系统,材料成本超过 100 美元!使用微控制器和用于操作系统的 RTOS 重新设计产品,我能够将 BOM 降至 11 美元左右。这就是拥有可持续发展的公司和不存在的公司之间的区别。

使用 Linux 时要考虑的第二点是产品的体积。如果你有一个小批量的产品,用户可能已经支付了更大的金额。当您查看非经常性工程成本和产品成本之间的权衡时,您可能会发现使用 Linux 可以显着降低 NRE 和上市时间。如果客户对价格不敏感,Linux 可能更具有商业意义。

最后,我们不能忘记 Linux 为我们提供了强大的抽象、服务和库,可以简化工程。如果我们的产品非常复杂,我们可以利用 Linux 来简化我们与硬件的交互方式。我们可以使用更现代的编程语言,如 Python。如果需要,我们可以自定义内核。Linux 非常适用于许多嵌入式应用程序。如果您需要灵活性以及利用现有库的能力,Linux 可能是您应用程序的绝佳选择。

结论

选择用于嵌入式产品的操作系统可能会影响项目的成败。太轻量级会导致开发团队花费更多的精力和时间来使事情正常工作。另一方面,过重会导致更高的物料清单成本。正如我们所见,为您的应用程序选择正确的操作系统归结为权衡对您的团队和用户最重要的东西。


审核编辑 黄昊宇

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

    关注

    4981

    文章

    18274

    浏览量

    288344
  • 操作系统
    +关注

    关注

    37

    文章

    6280

    浏览量

    121869
收藏 人收藏

    评论

    相关推荐

    再谈嵌入式实时操作系统

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

    嵌入式系统发展前景?

    嵌入式系统发展前景? 嵌入式系统,从定义上来说,是一种专用的计算机系统,它被设计用来控制、监视或者帮助
    发表于 02-22 14:09

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及需要执行的任务。
    发表于 02-02 15:24

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

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

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

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

    一种嵌入式操作系统—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

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

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

    STM32嵌入式操作系统介绍

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

    物联网设备操作系统有哪些?如何选择物联网操作系统

    物联网(IoT)设备端操作系统是指安装在物联网设备上的软件系统,用于管理和控制设备的硬件资源、执行应用程序以及处理通信任务。选择适合的物联网(IoT)设备端操作系统是一个重要的决策,以
    的头像 发表于 08-05 16:25 1150次阅读
    物联网设备<b class='flag-5'>操作系统</b>有哪些?如何<b class='flag-5'>选择</b>物联网<b class='flag-5'>操作系统</b>

    汽车操作系统和中间件的关系

    如果嵌入式操作系统(比如FreeRTOS, uCOS或Autosar CP的内核)的开发难度和工作量是1, 那么大型操作系统的开发难度和工作量就是99, 从体量就能看出,一个完整的嵌入式
    发表于 07-21 11:16 440次阅读
    汽车<b class='flag-5'>操作系统</b>和中间件的关系

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

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

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

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

    聊聊操作系统

    信息通信行业,还经常会和ubuntu、CentOS、Fedora这样的Linux系统打交道。 其实,操作系统的种类极多,远远不止我们知道的这些。 从使用场景来看,操作系统大致可以分为桌面
    的头像 发表于 05-12 11:13 1025次阅读
    聊聊<b class='flag-5'>操作系统</b>