首页>>科技 >>内容

嵌入式软件分类,嵌入式软件分类介绍

发布时间:2023-10-03 20:08:22编辑:温柔的背包来源:

很多朋友对嵌入式软件分类,嵌入式软件分类介绍不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

嵌入式软件分类,嵌入式软件分类介绍

嵌入式软件架构的设计意图通常伴随着基于个人经验的假设。软件开发人员可能会从资源有限的基于微控制器的系统的角度来看待架构设计。系统人员可能会从应用处理器的角度考虑体系结构。如何设计架构将取决于系统的嵌入式软件分类。我们可以用许多不同的方式对嵌入式软件进行分类。我发现有五种简单的嵌入式软件可以帮助我调整视角,以便更好地理解手头的系统。

让我们探讨五种简单的嵌入式软件,为了成功地交流和设计您的系统,您需要了解这些软件。01.嵌入式软件的分类裸机嵌入式系统采用独立于操作系统的软件架构。通常,裸机架构将是事件驱动的,严重依赖状态机,和/或使用非常简单的协作任务调度。开发人员需要非常了解底层处理器,因为没有任何操作系统能够抽象底层细节。

您通常会在资源有限的设备上找到裸机软件设计,例如8位、16位和一些32位微控制器。但是,资源可用性不是裸机系统的限制条件。您可以设计裸机架构,并在任何嵌入式处理器上实现。不幸的是,处理器越复杂,实现就越复杂。对于功能有限、资源有限、实时性要求严格、对可扩展性要求最低的产品,建议使用裸机架构和实现。

02.嵌入式软件的分类——实时操作系统(RTOS)使用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的闪存。容器是一种现代架构实现,可以增加嵌入式应用的灵活性、可扩展性和可移植性。多年来,它们已经成功地用于软件的其他领域。到目前为止,最大的限制是尺寸和性能。

我建议在需要现场更新、可伸缩性、额外安全性和现代敏捷流程的应用程序中使用容器。图1-容器架构堆栈05。嵌入式软件分类-混合系统混合系统同时利用多种分类。例如,您可能有一个使用嵌入式Linux的应用程序处理器。然而,处理器可能有一个内置的微控制器,使用裸机方法来管理实时响应。

混合系统允许开发人员通过使用多种设计方法从多种系统类型中获益。如果没有仔细管理设计的各个部分之间的交互,这种灵活性通常会增加系统的复杂性。对于有复杂处理和实时要求的产品,建议使用混合架构和实现。这些产品使用多核处理器,受益于高级抽象,需要扩展或重用应用部件。结论

嵌入式软件系统可以分为许多类型。如何设计和构建嵌入式软件将取决于您选择的分类。每个类别将指定您用来构建和实现系统的设计模式和工具。当设计或讨论一个系统时,请在进行设计前指定系统类型。回顾唐子红

以上知识分享希望能够帮助到大家!