珠海格力电器股份有限公司广东珠海519000
摘要:随着计算机技术、移动通信、数字家电等技术的迅猛发展,嵌入式系统也逐渐走进了普通人的生活和工作当中。基于嵌入式软件平台进行电子产品软件设计开发,为嵌入式实时软件的构件化开发提供了最基本的软件平台支持,为嵌入式实时软件的构件化开发技术的发展起到了较好的促进作用。
关键词:嵌入式软件;软件开发;设计方法;体系结构
随着电子产品的功能性与复杂性日益提升,传统的代码式开发方法由于编程灵活性较差以及各个源代码之间存在耦合现象,当电子产品开发企业需要修改部分源代码,必须对源代码进行全面系统检测,极大幅度地影响了程序代码的灵活性与实用性,难以满足现代电子产品的开发需求。而通过嵌入式软件组件开发方法,能够有效地根据软件设计的特点与需求进行针对性地软件开发活动,从而有效解决传统代码式开发方法所造成的各类负面影响,最终提升电子产品开发企业的综合竞争力,确保电子产品开发企业的长远发展。然而,软件本身具有不直观和抽象的特点,嵌入式系统的软件,开发也面临着类似问题,并且由于嵌入式系统的基本特点,许多问题比一般通用软件更严重。例如,资源有限性和实时性的特点要求嵌入式软件应该简洁高效,但是这种要求很多时候要依赖设计者的个人技巧才能达到,过多使用这些技巧往往使软件的可维护性变差另外,专用性的特点往往导致各应用系统之间采用封闭性的开发方式,应用系统之间重复开发多,使软件质量、进度、开发成本大受影响。基于此,有必要进一步针对当前电子产品软件设计中嵌入式软件开发进行分析和探究。
1.传统的集成开发与嵌入式软件开发的区别
在传统的集成开发环境基础上经过修改,面向领域的软件开发环境被提出来解决定制能力问题,但是它没有解决开放性问题。嵌入式系统的应用领域是多种多样,不可能每个领域都研制一个对应的软件开发环境,而目前的面向领域的软件开发环境由于开放性不够,将领域特性和公共特性即领域间共有的特性紧密结合在一起,要想把同样的软件开发环境从一种领域转向另一种领域,需要大量的工作,所以用面向领域的软件开发环境来解决定制问题并不理想。基于构件的软件开发环境较好地解决了工具集成的开放性问题,但是其定制能力仍然不足。最后,传统的嵌入式系统开发需要产品硬件成型后才能进行软件的调试和测试,软件开发周期长,风险大,已不适应当前嵌入式产品激烈竞争的市场环境。在软件开发环境中集成硬件仿真功能,构建嵌入式软件仿真开发环境,在产品硬件开发的同时,目标软件可以在几乎与实际硬件环境一致的虚拟硬件环境中进行调试和测试,就能大大缩短产品开发周期,降低开发风险和成本。
2.电子产品软件设计中软硬件设计一体化
嵌入式系统的不像在通用计算机系统那样系统软件与应用软件之间的界限分明;而是采用操作系统与应用软件采用一体化设计,针对不同的应用,其配置不同。我们用C、Java等编程语言所做的开发实际上是二次开发,开发的程序在一般的PC上都可以运行。PC平台实际上给我们提供了底层的实现标准。而嵌入式系统中,嵌入式应用受到时间和空间的严格限制,运行环境复杂,嵌入式软件运行的硬件平台多样,在处理器、存储设备、外围设备上存在多种选择;同时,在嵌入式操作系统的选择,软件开发和调试方法的选取等问题存在多种可能性,在应用开发过程中呈现出软件与硬件设计一体化的趋势。
3.电子产品软件设计中嵌入式软件交叉开发
PC上运行的程序,其开发程序与运行的环境大致相同。嵌入式软件开发是在交叉开发环境中完成的,目的在于增加开发的安全性、可靠性、提高开发效率,降低开发难度和成本。交叉开发环境是指:实现编译、链接、调试应用程序代码的环境与运行应用程序代码的环境不同,分散在不同设备上。整个嵌入式系统的开发离不开嵌入式系统的调试工具和优秀的开发平台,这里指嵌入式调试包括硬件调试、软件调试、模拟调试等。嵌入式开发平台包括嵌入式操作系统和嵌入式开发工具,嵌入式开发工具包括交叉编译器,交叉链接器和交叉调试器等。嵌入式系统开发人员应当树立实事求是的设计理念,根据不同领域的实际特点进行嵌入式系统的开发设计工作,从而保证嵌入式系统的应用效率与应用质量。在嵌入式系统中,存在着大量的系统组件。嵌入式系统开发人员应当合理划分不同功能的组件,通过实现不同组件的互补增值,提升嵌入式系统的整体资源配置效率。在进行系统组件配置的过程中,系统组件的粒度、重用难度以及管理投入之间存在着明显的正向相关关系。同时,嵌入式系统开发人员应当在嵌入式系统组件架构设计的过程中遵循信息传递原则、重用原则以及闭包原则,并注重模板的耦合状况以及完整性。
4.电子产品软件设计中嵌入式组件的接口设计
开发人员在实际嵌入式系统开发中,应用层是由多个单独运行的模块构成,且都是基于API层所提供的函数进行实际运行工作。而应用层的各个模块组织的运行过程则是通过一个统一的表格进行实时管理,并且可将该管理表格放置于FLASH中,从而提升应用层模块化的整体效率。主程序的运行结构主要受单片机影响,但主程序内部的各个基础模块的应用行为则具有可复用性。嵌入式组件开发人员在完成各类系统组件划分后,应当安照逻辑操作与接口一一对应的原则进行嵌入式组件接口的设计工作。嵌入式组件接口设计是一项灵活性较高的工作,嵌入式软件开发人员可根据不同情况设计不同的嵌入式组件接口,从而提升嵌入式组件接口设计的针对性与专业性。同时,嵌入式组件开发人员应当通过将接口与实际相分离的方式提升嵌入式组件接口的抽象性。并且嵌入式组件开发人员应当杜绝对组件接口设计方案的私自改动的现象,从而提升嵌入式组件接口设计的规范性与准确性。在进行嵌入式组件的接口设计中,嵌入式组件开发人员应当对不同系统组件的功能进行准确把握,并充分考虑不同硬件之间的隔离程度,从而保障嵌入式接口能够将软件与硬件进行有效的结合。最后,嵌入式组件开发人员还应当尽可能详细地规划系统组件的设置流程与调用流程,尽可能地满足用户对嵌入式组件的实际需求。
参考文献:
[1]嵌入式实时软件的构件化开发技术研究[D].古幼鹏.电子科技大学2016(09)
[2]面向方面技术在大规模嵌入式软件中的应用[D].邓阿群.浙江大学2017(05)
[3]面向数字化仪器设备的嵌入式软件应用框架研究[D].夏一行.浙江大学2017(11)