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 可能是您应用程序的绝佳选择。

结论

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


审核编辑 黄昊宇

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

    关注

    5082

    文章

    19104

    浏览量

    304796
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123283
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式操作系统?

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

    嵌入式系统中的连接器选择

    嵌入式系统中,连接器的选择是一个至关重要的环节,它关系到系统的稳定性、可靠性和数据传输效率。以下是对嵌入式
    的头像 发表于 11-07 09:44 250次阅读

    嵌入式 Linux 操作系统配置

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

    嵌入式系统的启动流程

    嵌入式系统的启动流程是一个复杂但有序的过程,它涉及从系统上电到操作系统内核及应用程序启动的多个阶段。
    的头像 发表于 10-05 17:44 359次阅读

    嵌入式系统的未来趋势有哪些?

    嵌入式系统是指将我们的操作系统和功能软件集成于计算机硬件系统之中,形成一个专用的计算机系统。那么嵌入式
    发表于 09-12 15:42

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

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

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

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

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

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

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

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

    嵌入式系统怎么学?

    开发工具:熟悉常用的嵌入式系统开发工具,包括集成开发环境(IDE)、编译器、调试器(如Keil、IAREmbedded Workbench、Eclipse)等。 5、实时操作系统(RTOS):了解实时
    发表于 07-02 10:10

    如何根据需求选择合适的新加坡VPS操作系统?

    选择合适的新加坡VPS操作系统需要考虑哪些因素,如何根据需求选择合适的新加坡VPS操作系统?rak部落小编为
    的头像 发表于 05-10 11:14 437次阅读
    如何根据需求<b class='flag-5'>选择</b>合适的新加坡VPS<b class='flag-5'>操作系统</b>?

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

    ,都可视系统的实际需求来进行选择。本文将为介绍上述外设器件的类型与选择的考虑要素。 存储器的种类众多且特性不同 存储器 在嵌入式
    的头像 发表于 05-05 09:38 896次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的外设器件<b class='flag-5'>选择</b>

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式
    的头像 发表于 04-09 17:27 786次阅读
    再谈<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