首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:计算机系统基础知识--嵌人式系统的分类和软件的组成及特点

1.由于嵌入式系统是一个“深埋”于设备中,对设备的各种传感器进行管理与控制的系统,可从不同角度去划分嵌入式系统。通常,根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种,而实时系统又可分为强实时(Hard Real-Time)系统和弱实时(Weak Real-Time)系统。如果从安全性要求看,嵌入式系统还可分为安全攸关(Safety-Critical或Life-Critical)系统和非安全攸关系统。嵌入式系统的分类如图所示。

(1)实时系统(Real-TimeSystem,RTS)。实时系统是指能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。也就是说,系统计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统错误。

(2)安全攸关系统(Safety-CriticalSystem)。安全攸关系统也称为安全关键系统或者安全生命关键系统(Life-Critical System),是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。

2.从现代嵌入式系统观看,人们把嵌入式系统分为硬件层、抽象层、操作系统层、中间件层和应用层等5层,如图所示。

(1)硬件层。硬件层主要是为嵌入式系统提供运行支撑的硬件环境,其核心是微处理器、存储器(ROM、SDRAM、Flash等、I/0接口(A/D、D/A、I/0等)和通用设备以及总线、电源、时钟等。

(2)抽象层。在硬件层和软件层之间为抽象层,主要实现对硬件层的硬件进行抽象(Hardware Abstract Layer,HAL),为上层应用(操作系统)提供虚拟的硬件资源;板级支持包(Board Support Package,BSP)是一种硬件驱动软件,它是面向硬件层的硬件芯片或电路进行驱动,为上层操作系统提供对硬件进行管理的支持。

(3)操作系统层。操作系统层主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成。嵌入式操作系统的功能主要包括任务管理、内部存储器管理、任务间通信管理和时钟/中断管理等,主要完成系统的硬件资源、软件资源进行调度和管理;可配置组件是对操作系统的基本功能的扩展,为用户提供更加丰富的公共能力,这些组件具备可配置和可剪裁特性,用户可根据自己设计的应用系统需求,做适当组合。通常可配置组件包括了文件系统、设备管理、运行时库(RTL)、图形用户接口(GUI)、网络管理(如TCP/IP)和支持系统软件调试用的目标机代理(Agent)等组件。

(4)中间件(Middleware)层。中间件是指一种独立的系统软件或服务程序,分布式应用系统借助这种软件可在不同的技术之间共享资源。中间件层一般位于操作系统之上,管理计算机资源和网络通信,中间件层是连接两个独立应用的桥梁。通常,中间件可分为服务中间件、集成中间件、数据中间件、消息中间件和安全中间件等5类。在嵌入式系统中,比较常用的中间件产品有嵌入式数据库、0penGL图形图像处理软件、JAVA中间件、虚拟机(VM)、DDS/CoRBA和Hadoop等。

(5)应用层。应用层是指嵌入式系统的具体应用,主要包括不同的应用软件。

外部环境的变化会对系统的硬件性能产生影响,硬件的变化必然会引发软件的异常现象,比如,航天领域的辐射会引起存储器的负离子反转,那么存储器中存储的程序或数据就会发生变化,因此,嵌入式软件也要适应恶劣环境的影响。

3.嵌入式软件的主要特点如下。

(1)可剪裁性。嵌入式软件能够根据系统功能需求,通过工具进行适应性功能的加或减,删除掉系统不需要的软件模块,使得系统更加紧凑。可剪裁性通常采用的设计方法包括静态编译、动态库和控制函数流程实现功能控制等。

(2)可配置性。嵌入式软件需要具备根据系统运行功能或性能需要而被配置的能力,使得嵌入式软件能够根据系统的不同状态、不同容量和不同流程,对软件工作状况进行能力的扩展、变更和增量服务。可配置通常采用的设计方法包括数据驱动、静态编译和配置表等。

(3)强实时性。嵌入式系统中的大多数都属于强实时性系统,要求任务必须在规定的时限(Deadline)内处理完成,因此,嵌入式软件采用的算法优劣是影响实时性的主要原因。强实时性通常采用的设计方法包括表驱动、配置、静/动态结合、汇编语言等。

(4)安全性(Safety)。安全性是指系统在规定的条件下和规定的时间内不发生事故的能力。安全性是判断、评价系统性能的一个重要指标,可直接反映系统失效后所带来损失大小。

通常,在嵌入式系统中根据软件危害程度可将软件分成不同安全等级,例如,机载领域DO-178适航标准将软件分为AE5个安全等级。提高安全性通常采用的设计方法包括编码标准、安全保机制、FMECA(故障模式、影响及危害性分析)。

(5)可靠性。可靠性是指系统在规定的条件下和规定的时间周期内程序执行所要求的功能的能力。可靠性也是判断、评价系统性能的一个重要指标。软件可靠性与硬件可靠性的衡量指标是完全不同的,软件是不可能随着时间发生变化。在安全攸关系统中,其系统的可靠性指标通常要达到10?~10°。提高安全性通常采用的设计方法包括容错技术、余度技术和鲁棒性设计等。

(6)高确定性。嵌入式系统运行的时间、状态和行为是预先设计规划好的,其行为不能随时间、状态的变迁而变化。也就是说,在嵌入式系统中,任务、资源、状态、错误和时限等都是预先由设计师规划好的,在系统运行期间,不能发生资源枯竭和未预计的状态出现等情况,尤其是在系统失效后不能由于未预计到的错误而引发灾难。确保软件确定性通常采用的设计方法包括静态分配资源、越界检查、状态机、静态任务调度等。

4.嵌入式软件的开发也与传统的软件开发方法存在比较大的差异,主要表现在以下方面。

(1)嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机储存器上运行。

(2)嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性。

(3)嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中。

52系统架构设计师教程(第2版)

(4)嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备。

(5)嵌入式软件对实时性的要求更高。

(6)嵌入式软件对安全性和可靠性的要求较高。

(7)嵌入式软件开发是要充分考虑代码规模。

(8)在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码审定。

(9)模块化设计即将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的功能。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OCzcr7VULUa8zGcQGcyAsrDw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券