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

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

3天内不再提示

嵌入式软件分类介绍

jf_EksNQtU6 来源:车端 2023-04-06 11:39 次阅读

嵌入式软件架构设计意图通常伴随着基于个人经验的假设。软件开发人员可能会从资源受限的基于微控制器的系统的角度来看待架构设计。系统人员可能会从应用处理器的角度考虑架构。如何设计架构将取决于系统的嵌入式软件分类。

我们可以通过多种不同的方式对嵌入式软件进行分类。我发现有五种简单的嵌入式软件分类可以帮助我调整视角以最好地理解手头的系统。

让我们探索 5 个简单的嵌入式软件分类,您需要了解这些分类才能成功地交流和设计您的系统。

01.嵌入式软件分类 – BAREMETAL

裸机嵌入式系统利用不依赖于操作系统的软件架构。通常,裸机架构将是事件驱动的,严重依赖状态机,和/或使用非常简单的协作任务调度。开发人员需要非常了解底层处理器,因为没有操作系统可以抽象出底层细节。

您通常会在资源受限的设备(例如 8 位、16 位和一些 32 位微控制器)上找到裸机软件设计。但是,资源可用性不是裸机系统的限制条件。您可以设计一个裸机架构并为任何嵌入式处理器实现它。不幸的是,处理器越复杂,实现就越复杂。

对于功能有限、使用资源受限的微控制器、具有严格的实时要求以及对可扩展性的最低要求的产品,建议使用裸机架构和实现。

02.嵌入式软件分类 – 实时操作系统 (RTOS)

使用实时操作系统的嵌入式软件体系结构在过去几年中急剧增加。基于 RTOS 的嵌入式系统通常具有比裸机架构更复杂的时序要求。RTOS 抽象出一些低级细节,例如任务调度,同时还为开发人员提供任务同步(信号量和标志)、数据保护(互斥量)和通信(队列)的工具。

您通常会在 32 位微控制器和小型应用处理器上找到 RTOS 软件设计。虽然您可能会在 16 位处理器上找到它们,但 RTOS 通常需要至少 24 KB 的闪存和 32 KB 的 RAM 才能有效使用。这些要求对 RTOS 的有效使用设置了下限。

RTOS 会给设计增加额外的复杂性,主要是在使用抢占式任务调度时。如果设计者不小心,就有可能导致线程饥饿、创建优先级倒置甚至死锁。但是,RTOS 可以为您提供快速扩展系统、提高可维护性以及收集比裸机系统更复杂的系统性能的能力。

对于具有复杂时序要求、使用现代微控制器、受益于多任务处理以及需要扩展或重用应用程序部分的产品,建议使用基于 RTOS 的架构和实现。

03.嵌入式软件分类 – “通用”操作系统

当使用足够复杂的处理器(如应用程序处理器)时,嵌入式软件架构可以利用整个操作系统。例如,嵌入式 Linux 可以被认为是一个完整的操作系统。我不将 RTOS 归入此类别,因为 RTOS 与嵌入式 Linux 不同,它是一种专用的、资源受限的操作系统,。设计人员可以像开发桌面或移动应用程序那样完全访问库和操作系统资源。

您通常会在 Raspberry Pi 等 32 位应用程序处理器上找到这种操作系统软件设计。然而,这些处理器非常复杂,需要一个操作系统来管理它们的所有资源。现在,这并不意味着您不能使用裸机或使用 RTOS;它只是意味着复杂性和开发时间急剧增加。

完整的操作系统可以消除开发人员的内存限制负担。此外,您通常可以让非嵌入式软件人员参与进来。对于基于操作系统构建的应用程序,软件开发涉及的专业化知识要少得多。

对于没有严格实时要求、使用现代微处理器、受益于高级抽象以及需要扩展或重用应用程序部分的产品,建议使用完整的操作系统架构和实现。

04.嵌入式软件分类 – 容器/微服务

微服务和容器是云、移动和桌面计算中常见的设计类型。然而,他们正在迅速找到进入嵌入式系统的途径。我将这两者混为一谈,因为它们使用的架构设计策略相似,尽管底层技术不同。

微服务

微服务将应用程序构建为一组松散耦合的服务,可独立部署且易于维护(如果做得好)。微服务将应用程序构建为为业务领域开发的小型自治服务的集合。微服务提供具有特定功能的松散耦合服务。

资源相对受限的嵌入式系统(例如微控制器)可以运行微服务。但是,它们通常至少需要与运行 RTOS 所需的内存量相同的内存量。微服务包括服务本身、入站和出站消息队列以及日志和状态信息

需要编排器和运行时环境会增加微服务设计的复杂性,必须谨慎使用您使用的资源并仔细监控系统的实时响应。然而,微服务可以提供非常可扩展的系统,易于现场维护和更新。

我建议在需要现场更新、可扩展性和现代敏捷流程并受益于分布式模型的应用程序中使用微服务。

容器

容器是一种可以承载微服务的实现范式。每个容器都是一个独立的沙箱,可以运行一个或多个微服务。容器通常可独立部署且易于维护。一系列容器为更广泛的应用奠定了基础。同样,容器和微服务密切相关;容器为微服务运行提供了额外的隔离层。

至少需要一个现代微控制器来利用容器。每个技术供应商都略有不同,但有些供应商声称能够使用与 RTOS 一样少的内存。然而,我调查过的大多数目标物联网应用程序预计大约有 256 KB 的闪存。

容器是一种现代架构实现,可以为嵌入式应用程序增加灵活性、可扩展性和可移植性。多年来,它们已成功用于软件的其他领域。迄今为止最大的限制是尺寸和性能。

我建议在需要现场更新、可扩展性、额外安全性和现代敏捷流程的应用程序中使用容器。

8e1831bc-d074-11ed-bfe3-dac502259ad0.png

图 1 – 容器架构堆

05.嵌入式软件分类 – 混合系统

混合系统同时利用多个分类。例如,您可能有一个使用嵌入式 Linux 的应用程序处理器。但是,该处理器可能有一个内置的微控制器,它使用裸机方法来管理实时响应。

混合系统允许开发人员利用多种设计方法从多种系统类型中获益。如果不仔细管理其设计的各个部分之间的交互,这种灵活性通常会增加系统的复杂性。

对于具有复杂处理和实时要求的产品,建议使用混合架构和实现,这些产品使用多核处理器,受益于高级抽象并需要扩展或重用应用程序部分。

06.结论

嵌入式软件系统可以分为多种类型。如何设计和构建嵌入式软件将取决于您选择的分类。每个分类都将规定您用来构建和实施系统的设计模式和工具。当设计或讨论系统时,请先指定系统类型,然后再继续进行设计。

审核编辑:汤梓红

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

    关注

    48

    文章

    7482

    浏览量

    151014
  • 处理器
    +关注

    关注

    68

    文章

    19155

    浏览量

    229050
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302988
  • 软件
    +关注

    关注

    69

    文章

    4762

    浏览量

    87146
  • RTOS
    +关注

    关注

    21

    文章

    809

    浏览量

    119410

原文标题:结论

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式系统的特点、分类、发展与应用

    一. 嵌入式系统的特点、分类、发展与应用1.嵌入式系统定义1)广义上:带有微处理器的专用软件系统。2)狭义上:使用嵌入式微处理器构成的具有自
    发表于 12-22 06:10

    嵌入式系统的特点、分类、发展和应用

    与视频4. 嵌入式系统与网络通信嵌入式系统基础1. 嵌入式系统的特点、分类、发展和应用特点专用性隐藏性资源受限高可靠性实时性软件固化
    发表于 12-22 06:36

    嵌入式系统特点与组成及其分类介绍

    、DVD播放器等;(2)数控机床、飞机、汽车、电梯、X光机、血压计等;(3)电话机、传真机、打印机、pos机、GPS导航仪、路由器等。1.1.2嵌入式系统组成与分类(1)逻辑组成:硬件和软件,分为处理器、存储器、I|0设备与I|
    发表于 12-23 07:52

    嵌入式系统设计全面介绍

    嵌入式系统设计来源于电科大陈虹老师的课程总结课程体系:理论与实践相结合以嵌入式硬件的核心嵌入式微处理器及嵌入式软件的核心
    发表于 01-25 07:05

    嵌入式工作有哪些分类

    嵌入式技术广泛应用的今天,已经有越来越多的人选择了嵌入式,那么,嵌入式工作有哪些分类嵌入式产品开发是基于产品的功能,从功能需求、提出并选
    发表于 07-14 16:07

    嵌入式Linux的分类

    嵌入式Linux的分类 第一类是在利用Linux强大功能的前提下,使它尽可能的小,以满足许多嵌入式系统对体积的要求,如uC
    发表于 03-28 10:29 834次阅读

    什么是嵌入式软件开发

    嵌入式软件开发又是指什么?   随着嵌入式软件系统结构越来越复杂,嵌入式软件的开发已成
    发表于 04-20 08:43 8754次阅读

    嵌入式系统的特点及分类

    嵌入式系统的特点及分类 1. 嵌入式系统的特点(1) 系统内核小由于嵌入式系统一般是应用于小型电子装置,系统资源相对有
    发表于 06-17 00:27 2.1w次阅读

    嵌入式系统的定义与分类及其应用介绍

    1.什么是嵌入式系统(嵌入式系统是计算机软件与计算机硬件集成在一起,并嵌入到应用对象内部的计算机系统) 嵌入式系统是以应用为中心,以计算机技
    发表于 10-17 16:45 6次下载

    嵌入式软件开发编程规范介绍

    对于嵌入式系统来讲,嵌入式软件相当于嵌入式系统的灵魂,整个嵌入式系统如何工作,都是由嵌入式
    的头像 发表于 01-01 09:28 4335次阅读

    嵌入式软件是什么意思_嵌入式软件分类有哪些

    本文首先阐述了嵌入式软件的概念,其次介绍嵌入式软件的特征,最后介绍
    发表于 08-31 15:54 1.6w次阅读

    嵌入式软件的开发流程_嵌入式软件的调试

    本文首先介绍嵌入式软件的发展,其次阐述了嵌入式软件的开发流程,最后介绍
    发表于 08-31 16:02 6229次阅读

    浅析嵌入式系统中的特点与分类

    嵌入式系统作为主流系统之一,在各大行业中都有其身影。为增进大家对嵌入式系统的认识,本文将对嵌入式系统的分类嵌入式系统的特点予以
    的头像 发表于 05-02 23:11 1922次阅读

    嵌入式软件测试参考书籍

    嵌入式软件测试的几本参考书籍:1、《嵌入式软件测试》;2、《嵌入式软件测试 方法、案例与模板详解
    发表于 10-20 12:06 51次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>测试参考书籍

    嵌入式软件配置的分类

    嵌入式软件配置的分类嵌入式编码中,有三种配置的方式Pre-compile timeLink timePost-build后记在嵌入式编码中
    发表于 10-20 20:36 8次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>配置的<b class='flag-5'>分类</b>