嵌入式软件:
一、概述
嵌入式软件是计算机中常用到的软件,目前被广泛应用在社会生产和生活的各个领域。嵌入式软件相比于其他软件具有较多的优势,如软件代码规模小、反应速度快,不仅可以在很大程度上提高软件开发的效率,还能够满足软件设计的基本要求。
嵌入式软件与嵌入式系统是密不可分的,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”,就是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。而嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。
二、应用
嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域,如我们常见的移动电话、掌上电脑、数码相机、机顶盒、MP3等都是用嵌入式软件技术对传统产品进行智能化改造的结果。
嵌入式软件在中国的定位应该集中在国防工业和工业控制、消费电子、通信产业。
首先一个市场是数字电视市场。中国有8000万户有线电视网用户、1亿以上有线电话网用户、3亿多台彩色电视机、7000多万台VCD/DVD机,据估计,未来十年是机顶盒的黄金时期,十年间总量可达到1~1.5亿台,总产量将达到600~1500亿元人民币。
第二个市场是移动通信市场。中国是全球第二大手机消费国,今年,中国手机的用户将达到7000万,据预计,明年,中国将成为全球第一大手机消费国;国内GSM手机定点厂家已达到14家,如果每个手机定点厂家的年产量达到100万台(盈利点),则总产量将达到1400万台。
第三个市场是掌上电脑(PDA)。计算机正在向微型化和专业化方向发展,PDA在5年内总销量将达到3000万台,总产值达到300亿元。
综合三个市场,当前的形势为:数字电视市场已开始启动;2.5G和3G手机的研发已开始,国内手机厂家的市场拓展已取得初步成功;PDA市场已初步形成规模。
嵌入式软件产业的形成
三、软件分类
1.嵌入式操作系统:嵌入式操作系统EOS(EmbeddedOperating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式操作系统通常以商业运作为主,从上世纪80年代起,商业化的嵌入式操作系统开始得到蓬勃发展。现在国际上有名的嵌入式操作系统有Windows CE 、Palm OS 、Linux 、VxWorks 、pSOS、 QNX、OS-9 、LynxOS等,已进入我国市场的国外产品有WindRiver、Microsoft、QNX和Nuclear等。我国嵌入式操作系统的起步较晚,国内此类产品主要是基于自主版权的Linux操作系统,其中以中软Linux、红旗Linux、东方Linux为代表。
2. 嵌入式支撑软件:支撑软件是用于帮助和支持软件开发的软件,通常包括数据库和开发工具,其中以数据库最为重要。嵌入式数据库技术已得到广泛的应用,随着移动通信技术的进步,人们对移动数据处理提出了更高的要求,嵌入式数据库技术已经得到了学术、工业、军事、民用部门等各方面的重视。嵌入式移动数据库或简称为移动数据库(EMDBS)是支持移动计算或某种特定计算模式的数据库管理系统,数据库系统与操作系统、具体应用集成在一起,运行在各种智能型嵌入设备或移动设备上。其中,嵌入在移动设备上的数据库系统由于涉及数据库技术、分布式计算技术,以及移动通讯技术等多个学科领域,目前已经成为一个十分活跃的研究和应用领域。国际上主要的嵌入式移动数据库系统有Sybase、Oracle等。我国嵌入式移动数据库系统以东软集团研究开发出了嵌入式数据库系统OpenBASE Mini为代表。
3. 嵌入式应用软件:嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。目前我国市场上已经出现了各式各样的嵌入式应用软件,包括浏览器、Email软件、文字处理软件、通讯软件、多媒体软件、个人信息处理软件、智能人机交互软件、各种行业应用软件等。嵌入式系统中的应用软件是最活跃的力量,每种应用软件均有特定的应用背景,尽管规模较少,但专业性较强,所以嵌入式应用软件不象操作系统和支撑软件那样受制于国外产品垄断,是我国嵌入式软件的优势领域。
四、软件特点
1. 嵌入式软件具有独特的实用性。嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬件和设备联系紧密。嵌入式系统以应用为中心,
嵌入式软件是应用系统,根据应用需求定向开发,面向产业、面向市场,需要特定的行业经验。每种嵌入式软件都有自己独特的应用环境和实用价值。
2. 嵌入式软件应有灵活的适用性。嵌入式软件通常可以认为是一种模块化软件,它应该能非常方便灵活的运用到各种嵌入式系统中,而不能破坏或更改原有的系统特性和功能。首先它要小巧,不能占用大量资源;其次要使用灵活,应尽量优化配置,减小对系统的整体继承性,升级更换灵活方便。
五、嵌入式软件开发方法
嵌入式软件的开发方法主要有三种,分别是结构化设计方法、面向对象设计方法以及基于构件的设计方法。
1、结构化设计方法
嵌入式有多个设计方法,而结构化的设计方法是比较广泛应用的一种设计方法,相比于其他设计方法,这种设计方法有着一定的优势。结构化的方法还可以分为两种类型,分别是单任务结构化设计方法以及多任务的结构化设计方法。单任务结构方法的核心是遵循结构化的设计原则,对每个事件进行有序的处理,之后再循环调用各个模块;多任务的结构化设计方法,是先对模块进行划分,再进行综合。这些模块需要被综合分配到多个任务中去,并在多任务的环境下运行。这种设计方法对硬件性能要求比较高。
2、 面向对象设计方法
面向对象设计方法符合人们的思考方式,与多任务的设计方法有着较大的区别。面向对象设计方法,会将操作的数据放于实体中进行密封。如果想要访问对象,就要借助于信息。这样的设计方式,安全系数比较高。同时面向对象的设计方法能够对大规模的应用模式进行捕捉,在一定程度上,增强了软件系统结构的重用性,在实现软件的维护性、重用性以及拓展性方面有着较大的作用。
3、 基于构件的设计方法
立足于构件化的设计方法更加重视构建对软件的重要性,重视软件的体系结构。那么这种设计方法具有一定的独特性,强调构件的实现目的所运用的方法和手段。其独立性、重用性是构件的两个突出的特点。重用性反映了构件对于软件的重要性,构件实现目的手段则反映了它的独立性特点。
六、嵌入式软件的主要开发技术
嵌入式软件的开发技术主要有两种,分别是交叉开发技术和IP 构件技术,这两种技术是目前比较常用的开发技术。
1、 交叉开发技术
与其他的计算机软件相比,嵌入式软件并不是完全进行自主开发的。在进行嵌入式软件开发中,目标机需要与宿主机之间进行任务的相互分配。编译、链接、定址等是宿主机需要完成的任务,而嵌入式软件的实际运行平台则是目标机[6]。开展编译、链接以及定址的过程能够将应用程序转变成相应的二进制代码,这些代码能够在目标机上开展工作。编译过程是由交叉编译器来完成的,在编译中,会形成一些目标文件,而通过链接过程,将编译中的目标文件变成指定的目标文件。定址就是将物理存储器地址指定到目标文件相对偏移处。通过这一系列的过程,最后在目标机上进行软件的运行工作。
2、 IP 构件技术
构件技术也就是我们所说的组件技术。IP 构件库技术作为嵌入式软件的开发技术之一,应用越来越广泛。IP 核(Intellectual Property KernelS)是单一芯片系统的核心,而单一芯片系统(SOC, SystemonChip)也是嵌入式系统实现的最好方式。IP 核包含了软件核、硬件核以及固件核的内容。硬件核也被称为MPU 核或者是DSP 核,软件核即是代码单元。
七、嵌入式软件的开发环境
嵌入式软件一般是在交叉的开发环境下进行的,这样的运行环境能够让软件开发过程中更加稳定、可靠和安全,在很大程度上提升了软件开发的质量和效率,同时也使得软件开发的难度和程度大大降低。嵌入式软件的交叉开发环境,反映了用于编译、链接、调试应用程序的代码环境,与运行应用程序的代码环境是有差异的,且在不同的设备装置上存在。其中,宿主机是用于编译、链接、调试环境的工具设备,目标机则负责代码的运行。
宿主机与目标机共同构成了交叉开发环境,且两者之间存在着逻辑上的链接和物理上的链接。物理链接就是通过物理线路,通过串口、以太网口,与OCD 的方式相链接;逻辑链接则是宿主机与目标机之间的通信链接,这种通信链接是通过通信协议实现的。宿主机被用于计算机的嵌入式系统的开发。众所周知,计算机软件的资源比较丰富,桌面操作系统较为强大,开发工具多种多样。这些都能为宿主机中的编译、链接、调试、测试等提供较好的支持。目标机则是为软件运行提供工作环境,它的主要作用是对宿主机发出的指令进行接收、读取和执行,如对内存进行读取写入,再将运行的结果传达给宿主机,配合宿主机各个程序的工作。嵌入式软件的开发过程需要由物理链接与逻辑链接得以实现。
八、嵌入式软件开发流程
通常情况下,嵌入式软件的开发与其他软件开发的流程存在着很大的相似性,过程主要由五部分构成,它们是需求分析、总体规划设计、详细设计、程序编码和程序测试。在软件开发的起始阶段,应该对市场的需求进行调研和分析,并结合所获取的市场信息,对所执行的项目编写相应的建议书,并认真研究项目的可行性,之后进行项目任务书的发布,并组建相应的开发队伍;对项目的总体规划,需要建立在对软件需求分析的基础之上,并做好风险控制,编制项目计划时,以确保嵌入式软件开发的合理性和科学性;关于系统的设计工作,需要对评审结果进行充分的分析,并且编制有效的软硬件设计文档;当嵌入式软件总体设计工作完成后,则要进入程序编码阶段的工作,并依据一定的程序,对之后的工作进行测试以及调试。同时,嵌入式软件的开发,需要结合软件开发的具体情况,选择合理的开发工具,确保软件开发的质量和效率。
计算机软件:
一、计算机软件开发技术的特点
对计算机软件来讲,其中主要包含系统软件及应用软件这两部分,计算机软件开发技术自身的特征也是非常突出的,一方面来讲,计算机软件开发技术的实用价值是相当高的,而且在各个领域当中都得到了非常广泛的应用,对整个社会的发展和进步都有很大程度的推动作用,从而产生更加多元化的社会效益。从另一方面来讲,计算机软件开发还需要消耗大程度的财力和物力等资源,这项设计工作是细腻而又复杂的,在整个社会的发展领域当中都是非常关键的。计算机软件的开发程度也是非常多样化的,主要的软件开发是用来开发系统软件和应用软件,一般是在控制和管理计算机的正常运行的过程当中得以应用,为用户提供了更加多元化的计算机应用页面,或是通过与实际需求相结合从而开展的软件开发等。
二、 计算机软件开发技术的方法
1、计算机软件开发的生命周期:计算机软件开发周期主要是通过时间的角度来定义软件,一般情况下,开发软件会划分为定义、开发、维护等多个方面,并且执行标准都是非常严格的。软件开发一般都有6个月的生命周期,其中也主要包含6个基本的开发阶段。
2、原型化方法:之前生命周期的定义和预说明都是相对比较严格的,而且软件开发人员在刚开始开发软件当中,主要是通过调查和分析用户的实际需求和真实体验,进一步了解并把握所需要开发的系统功能,并且做出更加全面深入的系统认定。如果用户并没有给出相应的功能说明或是开发人员不能对软件的适用范围非常明确的前提下,相应的开发人员可以通过采取原型化的方式,来进一步明确软件开发所提出的需求。通过开发软件来构建出基础的铸模和原始系统,同时还需要开发人员通过审核,才可以真正开发软件。
3、自动形式的系统开发:通过对软件编程当中程序员在编程语言当中所使用的编程软件的利用,来进一步开发和探索,保证软件开发技术得以不断地提高。系统会结合软件开发者对开发软件所提出的需求的分析来自动完成编写,其中只需要软件开发人员列出开发软件的相关需求,而并不需要真正地设计,系统就可以自动化完成编写,这种自动化的方式可以将程序工作量得到有效地减少,并且保证计算机技术更加智能化地发展。
三、 计算机软件开发技术的应用分析
开发软件最重要的目的就是为了实现用户可以对软件更加方便的使用,所以评价一款质量软件高低的标准就是该软件的实用价值高低状况。在真正应用软件的过程中,要保证用户的操作更加方便,同时软件还需要充分地具备稳定性及安全性、可维护性、可扩展性的特征和前提。有一部分软件开发模式在运行当中,可能会因为操作系统版本或是其他方面的约束,从而造成用户在对软件使用当中操作更加复杂化,这些都对软件的广泛应用非常不利。对于一些与操作系统相互兼容的软件来讲,因为它自身正常运行不会受到操作系统的约束,用户可以将软件的修复安装工作更加方便地完成,并且可以备份和还原计算机当中的数据信息。但是随着客户端使用软件的时间越来越长,一部分与系统兼容性较强的软件在后期运行的过程中,就可能会造成运算速度不断地降低的情况,因此在必要的时候需要人为完成存档。
1、 软件开发应当在调研市场后集中开发
当前的软件市场发展相对火爆,这种软件层出不穷,使得人们的生活需求被充分满足,无论是实现工作学习功能的办公软件和学习软件,还是进行娱乐的购物软件和影音软件,都使软件市场能够进行繁荣的发展。在数据大集中的环境下,对于软件的开发应当何去何从,如何在竞争激烈的软件市场中占据一席之地成为当前软件开发者要着重考虑的问题,集中开发和进行资格认证是实现软件开发有效性的重要内容。
软件的开发之初需要先确定发展方向,即这个软件面向的主要人群以及其主要功能,在确定方向之后就需要对市场进行调研,从而实现对软件未来发展前景的分析,对于不恰当的地方及时的进行调整。在这种情况下数据大集中就为其提供了便捷的调研方案。
2、 软件运行需要严格执行既定操作规范
在软件运行时工作人员需要严格遵守操作规范,使软件能够保持平稳持续的进行运行。在用户使用软件时,稳定性与流畅性是其选择软件的重要依据,一个不流畅且不稳定的软件即使其内容再好也无法受到用户的认可,而流畅性和稳定性很大一部分是由软件运行的操作规范是否严格执行决定的[3]。软件在投入使用后需要进行既定流程下的调试和维护,这些对于检测软件中可能存在的漏洞有着极佳的效果,不按照规定操作可能会导致漏洞无法被及时发现,投入使用后给用户带来不必要的损失,从而造成用户流失这一情况的发生。
很多软件用户不仅认真完成工作,而且了解金融业务,但是在刚使用新业务软件时也会提出一些“问题”。不难发现,有些用户由于长时间采用手工操作的方式对业务进行处理,所以单纯的觉得手工处理具有较强的灵活性,不会有过多的约束,甚至不重视这些风险的存在,时间长了,就会导致他们有自己的工作经验,如果在电脑中操作业务,他们往往都是凭借自身的经验,对电脑软件进行审视。比如:在平时公文处理过程中,秘书科长向行长提交已定稿的文件,签发之后,再向打字员传输,完成排版以及打印。然而打字员找到一些错误字,那么就不需要向上级请示而直接更正,人们根本不会对其合法性产生质疑,仅仅觉得打字员只是完成自己的工作。然而若根据公文处理的标准要求,打字员根本没有权力对定稿的公文进行修改,即便是错别字,不然就容易出现潜在的风险。但是制定办公自动化系统流程,是指根据公文处理标准,只要文件领导已经签字,打字员绝对不能随意修改。但是许多人都觉得这样设置缺乏灵活性。这是由于没有充分掌握软件设计的制度背景。因此,一旦在实际操作过程中出现问题,用户不可以随便判断软件是否存在缺陷,首先需要对个人的经验作出严格审视。
3、软件推广时应当进行平台优化以提升质量
对软件的相关平台进行优化是实现软件推广的重要内容,而软件推广则有利于实现软件运营的有效维持,对于提升软件运行的质量和效率都能够起到卓有成效的帮助。进行软件推广时首先要对推广人员进行专业的培训,使其对于软件的了解程度能够加深,在进行推广时瞄准目标人群,通过了解其对于软件使用的诉求进行针对性的推广,对于推广后的服务进行持续维护,使得软件的使用能够保持长久的寿命,从而实现软件运行的不断发展。
软件在投入使用时可以进行相应的操作指导,从而实现用户的顺利使用,解决在软件使用过程中可能遇到的障碍。软件公司还可以成立专门的客服部门,用以解决用户在使用软件时遇到的问题,使得软件的后续服务质量能够得到充分的保证。并且软件公司需要抽出适量的专业人员,主动与总行科技部门配合,建立一支高素质的技术支持服务团队,而且建立可以与维护人员以及用户直接彼此交流的网络与电话联系方法。其好处主要体现在以下几点:第一,既可以使用户在较短的时间内将故障有效处理,显著缩短业务停运时间,也可以使用户知道发生故障的原因,而且合理制定相应的防范策略,防止出现同样的问题。第二,软件公司可以快速搜集软件的不足以及错误,以便于立刻完善。通过直接与各个级别、各个地区的科技人员以及操作人员交流,可以征集到广泛的意见,以构建完善的“用户模型”,精心设计出符合实际情况、适应范围较广的业务软件。第三,通过彼此的交流,用户能够获取有关的知识,而且理解软件中的不足,这样可以使用户对软件留下深刻的印象。
参考文献:
【1】杨明东.嵌入式软件开发平台中的文件系统封装机制[J].信息通信,2018(05):6.
【2】王浩,吴晓玲.基于组件的嵌入式软件开发方法相关分析[J].信息与电脑(理论版),2018(17):41-42.
【3】张迪.嵌入式软件开发的关键技术[J].电子技术与软件工程,2017(4):55.
【4】殷静,罗西,杭佳祺.如何做好嵌入式软件开发测试[J].数字技术与应用,2017(8):214-215.
【5】王涛.嵌入式软件技术现状及发展前景[J].中国新通信,2017,19(20):40.
【6】刘玉军,冯飞,曹乐.一种航空机载嵌入式软件安全性评价方法研究[J].计算机测量与控制,2020,28(3):255-259.
【7】时启亮.浅谈计算机软件开发技术的应用[J].建筑工程技术与设计,2020(16):245.
【8】庄正云.简述新时期计算机软件开发技术的应用[J].科学与信息化,2020(14):47-48.
【9】颜清华.基于数据大集中的信息运维研究平台[J].网络安全技术与应用,2016(11).
【10】信息中心.数据集中软件系统成功运行全省地税信息化建设谱写新篇章[J].云南地税,2006(05).
【11】陈永权.数据大集中环境下的软件开发、应用和维护[J].中国金融电脑,2006(06):66-68.