APP下载

嵌入式软件在计算机系统中的应用研究

2021-04-23粱鉴如杨明来

软件导刊 2021年4期
关键词:嵌入式操作系统嵌入式软件实时性

沈 正,粱鉴如,杨明来

(1.上海工程技术大学电子电气工程学院,上海 201620;2.上海应用技术大学轨道交通学院,上海 201418)

0 引言

随着信息化社会的发展,诸多计算机软件开发部门对嵌入式软件应用的关注度逐渐提高,嵌入式软件与人们的日常生活及工作的联系也越来越紧密。相关研究人员对嵌入式软件进行具体研究与分析时,应明确软件应用过程中存在的问题及需要注意的事项,从而为计算机软件开发工作提供参考。针对嵌入式软件开发与维护,很多学者进行了大量研究。如文献[1]分析了嵌入式实时软件在计算机领域的应用;文献[2]探讨了嵌入式软件开发过程,提出嵌入式软件的应用可以提高软件开发效率;文献[3]分析了我国嵌入式软件发展现状及趋势,并对促进嵌入式软件发展提出了合理建议;文献[4]介绍了一种适合嵌入式软件的单元测试方法,可提高嵌入式软件的代码质量;文献[5]提出一种基于模型的嵌入式软件开发方法,比较了不同建模工具,并对嵌入式软件开发流程进行研究,验证了基于模型驱动的软件开发方法能有效提高嵌入式软件开发效率;文献[6]提出一种基于量子框架与Stateflow 模型的嵌入式系统软件设计方法,两者结合可以实现基于模型的嵌入式软件开发方法。

本文主要对嵌入式软件的概念、类型及开发过程中使用的相关技术进行研究,分析了嵌入式软件应用过程中存在的实际问题,从而为后续计算机软件开发工作提供参考。

1 嵌入式软件理论综述

1.1 概念

嵌入式系统主要是指能够帮助人们控制与监测设备的装置,是一套专用的计算机系统[7]。其涉及多种构成部件,例如传感器、微处理器、存储器、微控制器以及定时器等,这些微电子芯片及器件与嵌入在存储器中的控制应用、微型操作系统有效融合,共同完成自动化处理任务[8]。此外,嵌入式系统以应用功能作为核心,以计算机技术、微电子技术、通讯技术及控制技术等作为基础,在一定程度上重点强化硬件系统、软件系统的整合性及协同性,利用软件系统及硬件系统可剪裁的性质,实现系统对成本、功耗等方面的要求[9]。

其中,简单的嵌入式系统仅具有设备控制功能,以单片机为例进行分析,在只读存储器(ROM)中只包含具有简单控制功能的程序,而且不涉及微型操作系统。较复杂的嵌入式系统主要由诸多小型嵌入式系统组成,具备的功能与PC 基本一致,例如手持电脑及个人数字助理等。从根本上来说,复杂的嵌入式系统与PC 之间的主要区别为:嵌入式系统是将微型操作系统与应用软件嵌入到FLASH 存储器、ROM 等部件中[10],而非将其储存在磁盘等系列载体内。

1.2 分类

嵌入式软件主要包括3 种类型,即嵌入式操作系统、嵌入式支撑软件以及嵌入式应用软件。

1.2.1 嵌入式操作系统

嵌入式操作系统属于应用范围相对较广的系统软件,以往该操作系统大多应用于国防控制与工业生产领域。嵌入式操作系统需要完成以下工作:①对硬件或软件的控制管理;②协调硬件及软件相关工作;③对硬件或软件进行适度调整及改进等。对于嵌入式操作系统而言,其在商业运作中发挥的价值更加明显,其中WindRiver、Microsoft以及QNX 是我国普遍应用的软件[11]。

1.2.2 嵌入式支撑软件

嵌入式支撑软件主要是指为软件开发提供帮助及支持的软件,如开发工具及数据库等,其中数据库占比相对较大。随着移动通信技术的不断进步,人们对移动数据处理的需求逐渐增多,如今嵌入式数据库技术已广泛应用于军事、教育以及工业领域等。另外,嵌入式移动数据库也被称为移动数据库[12],属于一种特殊的数据库管理系统,与应用系统及操作系统共同运行在智能移动设备中,在智能设备上进行数据存储与计算。

1.2.3 嵌入式应用软件

嵌入式应用软件主要针对某特定领域,在用户提供的硬件平台上运行软件。为满足用户相关需求,部分嵌入式软件在应用期间需要选择指定的嵌入式操作系统[13]。相比普通软件,嵌入式应用软件不仅需要具备优化功能,同时还应具有更强的稳定性以及更高的精准度,从而有效减少硬件投入成本以及系统资源占用。现阶段,社会上针对嵌入式应用软件的使用场景很多,如上位机软件、办公软件等,这些软件虽然规模较小,但是技术含量很高,因此得到了广泛应用。

1.3 特点

嵌入式软件主要为嵌入式系统提供服务,因此与硬件设备联系密切。嵌入式软件属于应用系统,所以其将应用部分作为核心内容,根据应用需求实现定向开发。其中,每种嵌入式软件都有其专属的应用环境。

嵌入式软件在一般情况下属于模块化软件,可灵活应用于各嵌入式系统中,而且不会对原有系统功能进行破坏或更改。因其体积较为小巧,所以不会占用过多系统资源或空间。想要确保其具有更强的适用性,需要不断调整与完善系统配置,降低其对系统整体的依赖。

2 嵌入式软件开发过程及开发技术

2.1 开发步骤

嵌入式软件在计算机软件设计中的应用可以提升计算机软件设计质量及可靠性,从而优化计算机软件设计开发流程。当应用嵌入式软件时,应该先明确其开发流程,正确掌握计算机软件及硬件结构,对其进行有效分离,在一定程度上确保二者能够独立运作,以增强计算机软件的安全性以及可靠性[8]。此外,还应对计算机系统中的数据结构进行格式化处理,从而保证计算机软件设计工作的有效开展。嵌入式软件开发步骤如图1 所示。

Fig.1 Embedded software development steps图1 嵌入式软件开发步骤

嵌入式软件开发步骤主要分为3 步:首先,明确计算机软件相关需求,并对其进行分析;其次,在全面掌握与了解计算机软件需求的基础上,操作人员编写程序代码;最后,检测计算机软件性能,同时对检测结果进行分析,从而进一步调整与完善软件设计工作。

2.2 组织框架

嵌入式软件组织框架主要应用于桌面系统及网络系统中,而嵌入式系统很少运用组织框架,主要因为嵌入式系统结构相对简单,不具备重复性特征。如今嵌入式软件逐渐朝系统化、复杂化等方向发展,需要对功能作进一步完善。因此,在嵌入式基础上制定软件组织框架是很有必要的,甚至可以推动计算机行业的发展。嵌入式软件组织框架如图2 所示。

Fig.2 Embedded software organization framework图2 嵌入式软件组织框架

2.3 开发技术

为了实现对其它设备的监视、管理及控制等功能,嵌入式系统分为4 大板块,分别是嵌入式操作系统、嵌入式微处理器、用户应用程序以及外围硬件设备。处理器技术与IC 技术则是嵌入式软件的中枢技术,各技术具体内容如下:

2.3.1 处理器技术

处理器技术与用于实现系统功能的计算引擎结构相互关联,由于不同处理器面向指定功能的专用化程度不同,致使其设计指标也存在差异。

(1)通用处理器。首先,该类型的处理器无法用数字电路搭建程序,存储程序无法适用于各种类型的应用[15];其次,为满足数据寄存的需求,需要使用大量寄存器以及建设一个或多个通用算术逻辑单元。

(2)单用途处理器。单用途处理器是指加速器、外设、处理器这种应用于指定程序的数字电路,例如:压缩或解压视频信息,可用JPEG 编码解码器执行单一程序。嵌入式系统设计师可通过特有的数字电路搭建单用途处理器,也可使用事先制作好的单用途处理器。

(3)专用处理器。专用处理器是针对特定应用且可进行编程的处理器,也即专用指令集处理器(ASIP)。通过权衡速度、功耗、成本、灵活性等多个方面的设计约束,设计者可以定制ASIP 达到最好的平衡点,从而适应嵌入式系统的需要。

2.3.2 IC 技术

(1)全定制VLSI。设计师从晶体管的版图连线、尺寸及位置开始策划,以确保其具有芯片面积小、功耗低、利用率高、速度快等优越性能,同时需要根据指定的嵌入式系统完善各项功能,这就是全定制IC 技术。大规模集成电路设计通常也被称为全定制的IC 设计,其利用掩膜[18]在芯片制造厂制作芯片,需要花费很长时间,具有高昂的NRE成本,适用于对性能要求相对严苛的应用。

(2)半定制ASIC[19]。一种限制型设计方法,包括标准单元设计法和门阵列设计法。设计师只需考虑电路各功能模块的合理连接即可,因为其是芯片制作过程中的通用性元件。

(3)可编程ASIC。由于可编程器件中所有各层都已存在,所以研发周期大幅缩短,设计完成后无需IC 厂家参与,即可将芯片在实验室制作出来。可编程ASIC 的优势在于其消耗NRE 成本[20]较低,但其劣势为功耗较大、速度较慢以及单位成本较高。

3 嵌入式软件在计算机系统中的应用

在嵌入式技术逐渐成熟和稳定的条件下,相关产品也不断应用于各行各业中。现阶段,嵌入式软件在汽车电子、互联网、通讯等领域都发挥着重要作用。

3.1 应用原理

在计算机软件设计期间,嵌入式软件可通过组建相关专业化技术模型,将硬件系统与软件系统予以整合。嵌入式实时软件可在一定程度上解决计算机软件设计期间存在的问题,并且达到远程操控计算机的目的[21]。因此,在计算机软件设计中合理应用嵌入式软件系统,不仅可以完善计算模式以及系统操作流程,而且可以提升软件设计的实用性及安全性,定期对计算机系统进行更新与优化。

3.2 任务组织及映像存储设置

在嵌入式软件设计过程中,应根据相关任务对其予以有效划分,以提高软件使用率,在最大程度上发挥其核心价值。因为任务组织方式之间存在逻辑关系,所以其对于优化任务管理及组织功能发挥了重要作用[22]。嵌入式操作系统与计算机操作系统存在一定差异,对于嵌入式操作系统而言,其应用程序主要存在于只读内存和交互矢量中,想要使嵌入式系统在运行过程中始终保持稳定,则需要对计算机软件系统进行全方位改进与调整。软件设计期间的存储器布局与应用属于核心内容,应借助物理地址设置程序指令,同时编写执行代码[23]。

3.3 应用实时性及任务调配

嵌入式软件系统在使用过程中具有较强的实时性,主要表现在两个方面:硬件实时性及软件实时性[24]。硬件实时性是指系统在规定时间内达到任务要求,并且不存在延时的情况;软件实时性是指软件开始运行后,某个进程在分配的响应时间内必须是可执行的,并且必须在规定的响应时间内执行完。通过操纵操作系统优先级的调度方式,可在规定的时间范围内实现软件的实时性。假如有若干个任务作为软件策划的优先级任务核心,为了提升软件整体响应效率,保证重要任务的完成时间,需要分割出相应任务,根据任务的紧急程度增加原有的优先级数[25]。

4 结语

本文对嵌入式软件概念、分类、开发过程以及开发技术等进行研究,并介绍了嵌入式软件在计算机系统中的应用。但因嵌入式软件应用研究目前仍处于起步阶段,所以还有诸多内容需要不断完善,例如嵌入式软件体系结构属于较新的研究领域,在后续工作中还需要作进一步研究。

猜你喜欢

嵌入式操作系统嵌入式软件实时性
基于规则实时性的端云动态分配方法研究
典型实时嵌入式操作系统应用分析
实时嵌入式软件的测试技术
基于虚拟局域网的智能变电站通信网络实时性仿真
全景相机遥控器嵌入式软件V1.0 相关操作分析
航空电子AFDX与AVB传输实时性抗干扰对比
基于嵌入式操作系统的工业采集板设计
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
应用服务型人才培养体系下的嵌入式操作系统教学改革探索