时间:2022-08-01 10:42:23
引言:易发表网凭借丰富的文秘实践,为您精心挑选了一篇嵌入式系统软件开发技术研究范例。如需获取更多原创内容,可随时联系我们的客服老师。
摘 要:嵌入式系统是当前工业生产控制领域的重要计算机应用技术。随着工业现代化水平的不断提升,嵌入式系统变得更加繁琐复杂、功能也更加丰富。文章围绕嵌入式系统软件开发相关问题进行探讨,详细阐述了嵌入式系统软件开发的几个重要阶段,对各个阶段涉及到的重要技术进行了介绍。
关键词:嵌入式系统;软件开发;技术
引言
计算机技术一经问世,就成为加快推动人类社会生产活动高效开展的重要力量。在几十年的发展里程中,计算机相关技术都实现了巨大进步。伴随着工业现代化进程的不断深入,嵌入式系统获得了越来越多的关注。嵌入式系统是一种以软件和硬件相结合为特征的计算机系统。该种系统常用于工业大型机械化生产或者国防工业等领域,通过嵌入到某些专门设备中予以实现,故此得名嵌入式系统。在数十年的实际应用过程中,嵌入式系统屡经发展,不断创新改进,目前已经取得了许多项先进技术成果,为今后的相关领域开发工作指出了重要方向。
1 微处理器技术的选择
微处理器技术是嵌入式系统的重要基本元素。伴随着加工制作技术的升级,微处理器从最初的4位、8位器件开始,发展到后面的集成式单片8位微处理器、16位微处理器。时至今日,16位微处理器已经成为微处理器应用的中间类型,占据着微处理器市场的最大份额,而更高端的领域则由32位架构的器件所占据。最开始的32位器件采用的是CISC架构,而后随着技术的发展,性能更加优异的RISC芯片则成为32位器件架构形式的主要选择。嵌入式系统开发人员可以根据项目实际需要,综合比较设备性能、服务、适用性以及成本等多个指标选择最适合的微处理器。
2 系统架构的选择
架构是系统的基础组成,不仅关系到系统功能的实现,对于系统后续发展、优化也有着举足轻重的作用。微处理器的架构开始时仅仅是中央处理器和部分逻辑器件构成的简单形式。经过多年的发展,微处理器架构变得复杂、繁琐,但调试技术还是原来那些电路仿真、芯片级调试、ROM监控器以及指令集模拟等技术。随着嵌入式系统应用范围不断扩大和技术要求的不断提高,系统架构的重要性也在与日俱增,嵌入式系统开发人员必须要认真评估各类微处理器相关特性,选取合适的系统架构,这样才能保证开发出来的系统的健康水平。
3 设计组成
嵌入式系统的软件开发工作包括硬件开发和软件开发两个部分。最开始的时候,软、硬件的开发工作基本上都由一名技术人员负责。而且在系统开发项目的全部工作中,软件开发所占据的比例较小,最大十分之一。随着技术的不断发展,嵌入式系统开发工作中软件设计所占据的比例越来越大。原有工作模式因而发生丢了改变。专业人员专门负责嵌入式系统软件开发的工作模式出现在上个实际80年代中期,同期软件开发的工作量占据嵌入式系统开发工作业务量的一半以上。
近些年来,嵌入式系统发展得日渐成熟。软件、硬件方面都实现了巨大进步。系统开发业务量持续上涨。其中,软件开发的业务增长更为显著,已经达到嵌入式系统开发业务量的十分之七、八左右。巨大的工作量已经不是仅仅依靠一个开发人员就能完成的,必须依靠团队的力量。特别是随着系统开发工作的深入,一些新的技术措施、手段纷纷涌现,成为系统开发中不可或缺的重要环节。其中一个至关重要的就是用于软件开发后进行测试的硬件平台。由于软件开发业务量的高速增加,用来进行软件测试的硬件平台需求也就变得更加迫切。目前常用的方法有本地代码执行原型环境、指令集软仿真(模拟),或者是使用标准的、低成本的、现成的评估板等。而主机-目标机连接技术因为成本较低,故而推广速度很快,其中最为著名的就是JTAG接口。
4 软件内容
尽管软件开发所耗费的时间越来越多,但市场对于软件的开发周期的要求却越来越短。为了适应市场需求,嵌入式系统软件开发企业不得不在开发策略上下功夫。早期嵌入式系统软件结构简单、功能单一,使用企业自行开发的应用代码即可实现。如今系统功能丰富,功能强大,结构复杂,软件开发企业必须依赖外部的力量。目前,软件开发企业往往根据项目需求,选择对应的多任务的模型,然后使用标准的、商用的实时操作系统辅助开发。这种做法,优点是开发效率高,缺点是不可避免的遇到知识产权的问题。在全社会都越来越重视知识产权的大形势下,嵌入式系统软件开发,必须考虑到知识产权因素的影响,这种影响,不仅仅停留在当前所开发的软件上,更对后续的相关软件开发、应用拓展有着巨大的影响。
5 编程语言
编程语言是进行软件开发设计必不可少的工具。在微处理器刚刚出现,尚停留在4位、8位器件的阶段,开发人员只能选择汇编语言进行开发。当16位微处理器技术出现以后,软件编程语言的选择也变得丰富起来。使用较多的有Pascal、C语言、PL/M语言。而对于一些特别的系统,Forth语言更为适合。当32位微处理器应用日渐广泛以后,又开发出了C和ADA。其中,ADA主要应用于军事领域,在国防事业中大展身手。时至今日,C++已经逐步取代C语言成为嵌入式系统软件开发语言的主流,目前大约四分之一到三分之一的嵌入式系统是使用C++设计的。而本来专为嵌入式系统软件所开发出来的Java则在要求运行时重新配置的领域实现了更大的自身价值,统一建模语言(UML)也成为高级设计方法学的最流行选择。
6 软件队伍的规模和分布
上文提过,最初的嵌入式软、硬件开发工作通常都由一名工程师予以兼任。经过多年的发展演化,软件开发工作变得专业化、系统化、精细化,形成了专门负责软件开发的技术业务人员。而以嵌入式系统软件开发为职责的团队则是今后发展的主要方向。IT行业软件开发项目管理工作责任重大、任务艰巨。嵌入式系统软件开发同样如此。其区别仅在于嵌入式系统软件开发使用过程语言,比如C语言和汇编语言进行编程。嵌入式系统软件开发是一项技术含量和系统化要求很高的工作。开发团队中的所有人都要对目标系统有着全面的清晰的了解,而在当前项目越来越大,工作人员越来越多的情况下,受各人业务能力水平等因素的影响,要保持所有人都同样深入的认知水平显然是不现实的。实际情况是团队中部分高端人才对于某个领域认识非常深入,相关业务能力很强,这些人是开发团队的主干,团队管理者必须科学、协调、高效使用这些人力资源,确保他们的业务成果可以被其它人员正确使用。而面向对象编程技术则是这种应用策略在技术层面的现实体现。
7 结束语
我国正处于产业结构调整的重要时期,大规模的自动化生产成为工业生产的主流。嵌入式系统软件远景广阔,市场空间巨大。软件开发企业要牢牢把握这个机会,深入、扎实地研究嵌入式系统软件开发技术,吸收外部优势资源为我所用,设计出功能强大、适应广泛的优质软件产品,在实现企业自身的健康高速发展的同时,为我国经济建设提供有力支持与保障。
摘要: 针对新兴的嵌入式系统发展趋势,提出了对于嵌入式系统软件开发的几个过程,并挑选出它们所驱动的技术,从而做出一个值得注意的技术的时间表。
关键词: 嵌入式系统;软件开发
0 引言
嵌人式系统开发经过30多年的发展,到现在算是一个成熟的技术了。由此可以从总体上确认在嵌入式系统开发展过程中出现的几种明显趋势,这些趋势指出了一系列新兴的关键技术。
1 微处理器技术
最早的微处理器是4位和8位器件。由于制造技术越来越复杂,集成的单片8位微处理器开始出现,16位微处理器也开始使用。随着微电子技术的发展,16位的微处理器已得到广泛的应用。32位架构的器件逐渐占领了高端的应用市场,第一代的32位器件都是CISC架构,但目前,越来越多的RISC芯片正在提供更高的性能。嵌人式系统设计者选择微处理器的范围比以前大了,必须根据性能、需求、支持、可用性和价格来进行选择。
2 系统架构
随着微处理器的发展系统架构也在进步。最早的系统,是由CPU和一些逻辑器件组成的。多年以来,系统变得日益复杂,但都还可以使用同样的调试技术—电路仿真、芯片级调试、ROM监控器以及指令集模拟。嵌入式系统日益强劲,而功能需求的增长则更快很多设计者开始重新审视微处理器和它们的用法。
3 设计组成
嵌入式系统发展的最初阶段。所有的开发包括软件和硬件设计,通常都是一个工程师来承担。软件在整个工作址中的比例很小,大约5%-10%。随着时间的推移软件开发占工程时间的比例持续增长。至20世纪80年代中期,软件开发已经是由专业欢件人员来做,所占比例一般已超过整个开发工作量的50%。
在最近几年,虽然硬件设计变得更加复杂,但软件的份量也急剧增长,目前通常占到开发总量70%-80%。因此,需要有软件团队参与,同时也产生了一些新的挑战。这些挑战中的一个,就是要有可用的硬件平台来进行软件测试。由于要在更短的时间内开发更多的软件,就需要尽快建立测试环境。发出更多的软件,就需要尽快建立测试环境。有多种可行的方法,如本地代码执行原型环境、指令集软仿真(模拟),以及使用标准的、低成本的、现成的评估板。此外,低成本的主机一目标机连接技术,也变得越来越普及,有代表性的就是JTAG接口。
4 软件内容
软件开发所占总时间的比例一直在增加。同时,来自全球贸易和竞争的压力使得产品投放市场的时间也一直在缩短。这极大地影响了设计的策略。最早的设计相当简单,仅仅由自己设计的应用代码组成。随着系统的复杂度增加,多任务的模型被软件开发者广泛采纳,很多开发者选择标准的、商用的实时操作系统产品。随着各个标准的进一步被采纳,买来的软件,或者说有“知识产权”的软件所占的比例正稳步增长。这个趋势给了软件开发者很多启示。集成标准的软件组件—和应用代码及其他—是我们所关心的。在多任务背景下调试是另一个值得关注的问题。与选择知识产权有关的商业决定尤为复杂;除了当前的要求之外,还有将来的(例如移植到别的处理器)也必须加以考虑。
5 编程语言
对于早期的4位和8位微处理器,汇编语言是唯一的选择。随着16位微处理器技术成为现实,出现了几种可供选择的语言。有Pascal和C语言和PL/M语言。对某些类型的系统来说,Forth语言也曾很流行,随着时间推移,32位技术的使用日益增多,出现了C和Ada。后者在国防部的系统中被普遍使用。
在嵌入式软件开发中,C++开始逐步取代C语言。现在,1/4~1/3的嵌入式系统代码是用C++编写的。Java语言当初是专门为嵌人式应用开发的,在要求运行时重新配置的应用场合,它找到了一席之地。统一建模语言(UML)也成为高级设计方法学的最流行选择。
6 软件队伍的规模和分布
正如先前讨论的一样,最初的嵌人式系统设计只要一个人就够了。在适当的时候,因专业化,产生了致力于软件开发的工程师。下一步就是建立嵌人式软件开发团队。管理软件开发在任何情况下都是一个挑战,嵌入式系统开发也不例外,只是有细微差别。使用传统的编程技术———过程语言,如C语言和汇编语言,团队里的大部分成员都需要对整个系统了解比较全面。随着团队变大,这就变得越来越不可行。价况住往是,团队里有一些特殊的人才,他们对某些专门领域很在行。为了有效地管理团队必须使用合适的策略,将他们的专长封装起来。尽可能使一个专家的工作成果能够被非专家以安全、可靠和直观的方式加以使用.在这种情况下,面向对象编程技术找到应用点。
虽然有很多非常大的公司,但软件队伍不是简单的人员扩充他们正在变成分布式的。团队的一些成员在一个地方,而其他的可能在别处。这些地点甚至有可能位于不同的国家。这种安排在欧洲很常见,在那里,真正关心的可能是交流的语言。其他地方,时区可能是个问题(可能也是一个优势,因为分布式的团队可以全天候工作)。随着新兴的技术中心(如印度)广泛崛起,上述情况越来越普遍。在这一背景不,软件组件的可重用性需求就变得很常见了。
7 UML和建模
最近几年,UML己经成为一项关键的设计方法,它和逐渐增七的嵌人式软件团队规模关系密切。广义上说,使用设计工具的方式有2种:或者是作为编写代码的指导,或者就作为直接生成代码的一种手段。对于嵌人式软件来说,代码生成是有争议的,它可能会被争论(而且还很有道理)—每一个系统都是不同的,都有各自的特殊需求。这正是xtUML(可执行和可翻译的UML)吸引人的地方,因为它使得应用与架构清晰地分离了。这里所遵循的,是与面向对象编程同样的原则—使用工具和技术来平衡专家意见。
追踪所有被当前各种嵌人式系统开发趋势所驱动的新技术并非易事。孤立地看待其中任何一项技术也是毫无意义的,因为它们之间有着许多联系。例如,多任务与多处理器调试相关;基于标准的RTOS技术对处理器移植来说真是件幸事;使用设计方法学可以令实现更容易。
“今天,嵌入式设备生产厂商面临的最大问题就是软件太多,而他们能够用来进行测试的时间太少。过去,嵌入式设备设计制造团队软硬件工程师的比例为2:8,今天这个比例完全倒过来。这是因为,现在,一个设备区别于其他设备的决定性因素是软件,层出不穷的应用,使得嵌入式用软件的数量每2年翻一倍,而制造商却没有足够的能力来满足这一需求。不仅在消费产品领域,而且在工业、医疗器械领域都有time tomarketing的需求,在这种情况下我们开发了WindRiver test management(以下简称WRTM)4.0这款针对嵌入式系统的自动化测试软件。”风河设备测试产品市场营销副总裁IdoSarig说道。
风河的windriver testmanagement,是一个自动化的测试软件,能够帮助嵌入式软件进行更好的系统测试。这次开发的软件,是第一个为嵌入式软件设计的自动化的测试程序,与传统的测试程序不同,有很多新特性能够对系统进行测试。WRTM可应用于、汽车、医疗、网络、军工、航天,风河在诸多领域都展开了广泛的合作,并获得了客户的好评。
“虽然看起来,增加软件工程师的数量,进行软件开发和测试方面的投入会增加很多成本,但是如果不这么做的话,在大量依赖软件实现的创新中,软件故障会给设备制造商带来巨大的经济损失。比如几年以前,大众公司在中国市场销售的奥迪Q7SUV汽车,因为软件故障导致的召回事件,让这家汽车制造商损失数百万美元。而我们的测试软件可以帮助客户发现这类问题,并显著的降低测试的时间和成本,这样的成功案例有很多。我们的研究表明,用我们的软件可以将测试时间降低30%-40%。”
WRTM4.0有一个重要的功能就是虚拟实验室管理器,他可以综合全球各个测试实验室整合出的测试信息,来查找系统问题。不仅如此,还可以为客户节约测试方面的投入。例如,一家美国电信公司,在测试管理方面的投入高达每季度100万美元,而每一位测试工程师希望拥有专属的测试设备,这在很大程度上造成了重复投资,虚拟实验室就解决了这样问题,既保证了测试设备的独立性,同时又避免了重复投资。此外,WRTM测试引擎可以测试支持各种版本程序语言的软件(C,C++语言),甚至是二进制代码,并且可以进行优化和给出参考建议。
“WMRT未来的挑战是如何降低测试的时间,现在很多公司的实验室都堆积了过多的测试案件,他们没有时间去处理或者为了不承担责任而干脆不予理会,WRTM能够帮助客户解决这些问题,找出不同版本之间的差别,并判断出最可能出现问题的位置,从而使得软件测试变得更加有针对性,节省测试时间。WRTM软件的未来目标之一就是尽可能快速、尽可能准确地发现问题。”