嵌入式软件开发与软件架构研究

2021-01-04 01:47
科学与信息化 2021年1期
关键词:嵌入式软件功能模块调用

南京熊猫汉达科技有限公司 江苏 南京 210000

随着科技的不断进步,军用通信设备的功能逐渐扩展,应用场合和功能需求也表现出多样化的特征。传统的嵌入式软件开发模式已经不能满足日益增长的产品研发需求。嵌入式软件在确保能够安全、稳定的应用在各种通信设备的同时,还要能够降低需求变更带来的开发风险,能够在不断修改、迭代中进行演化和发展,所以选择一种合理的开发模式,构建一种适应性强的软件架构,具有非常重要的意义。

1 嵌入式软件开发模式与软件架构的研究现状

目前嵌入式软件开发模式和软件架构的现状不容乐观,其主要体现在以下几个方面,首先现阶段针对软件进行开发的过程中,主要是根据用户提出的需求进行,在整个开发周期中缺少大局观,只追求实现功能,没有考虑未来的维护和发展,所以导致由于系统资源的消耗过度,而使嵌入式软件在代码制作和功能开发的过程中复用度相对较低,同时还导致软件在实际使用过程中,因为用户的需求种类多,而影响开发过程中的统筹效率。然后是由于现阶段在嵌入式软件的应用过程中,需要和硬件设备及驱动设备配合使用,但是在实际使用过程中因为硬件设备和驱动设备与嵌入式软件可能会出现不符合的问题,并且兼容性较差,所以导致很多嵌入式软件在设备中的应用出现不兼容的问题,从而影响嵌入式软件的后期开发和架构建设。最后是由于某项细小需求变更或者软件自身代码可能存在的错误问题,要在无数的地方小心翼翼地修改,或者不断地打补丁,软件架构快速腐化,从而出现工作效率较低、软件难于维护并且不安全等问题[1]。

2 嵌入式软件开发过程的特点

嵌入式软件的开发流程和桌面型软件的开发流程相比具有相对较大的差别。由于嵌入式处理器种类繁多,不同处理器平台又有各自的编译器和调试软件,嵌入式软件开发不仅要做上层的业务交互,还要对底层的硬件接口芯片进行控制,比如常用的RS232接口、SPI接口、LCD控制器接口等。当设备需求较为复杂时,系统中将会出现多种嵌入式芯片,举个较为常见的应用实例就是,使用ARM作为控制处理器,完成操作输入和显示输出,使用DSP作为数据高速运算处理器,使用FPGA作为数据采集和逻辑电路控制器,所以在开发的过程中必须要考虑和硬件系统的兼容性,如果嵌入式软件在开发完成以后和硬件设备不具有良好的兼容性将导致嵌入式软件的使用效率下降和兼容性错误问题。在使用多平台的研发条件进行研发的过程中,要尽量实现资源共享,只有这样才能够尽量减少研发的时间,降低研发成本,这是现阶段各大软件开发公司追求的研发趋势。软件要符合预期,就需要完全的确定性,以往开发过程最常选用的就是瀑布式开发模型,遵循开发计划-需求分析-软件设计-编码-测试-运行维护严谨的线性开发过程,这种模式过于理想化。而实际上需求总是会变化的,软件设计作为开发周期中最重要的阶段,设计越弹性、越灵活的软件架构,在功能维护和扩展时,变更的成本就越低[2]。

3 软件架构建设

嵌入式软件在架构建设的过程中要融入分层设计、分模块设计的思想,使程序结构高内聚低耦合。任何软件根据其内部职能都可以分成多个层次,分层设计已有很多成功的应用实例,最典型的就如OSI七层网络模型。这里用一个通信设备的控制器软件为例,分析分层设计的必要性。

该软件的主要功能是提供操作显示交互和业务服务,架构中层与层之间不能跨层调用,模块之间各自独立,区分内外接口。硬件驱动层包含各功能模块正常运行所需要的管脚配置、时钟配置、串口、数据读写、存储等驱动程序并提供接口给功能模块层调用。按键扫描模块调用硬件驱动层GPIO和TIMER提供的API函数实现读取键值的功能,屏幕显示模块调用GPIO和LCD提供的API函数实现显示内容的输出,串口通信模块调用USART提供的API实现与其他设备的数据交互,数据存储调用FLASH提供的API完成数据读写与存储,同时各功能模块提供接口给后台服务层。后台服务层通过调用功能模块层的接口实现标准逻辑处理和控制协议封包与拆包,向前端提供基础服务。前端应用层将各个后台服务进行整合调用,完成整个产品的功能。这里好的API接口设计就显得非常重要,接口设计为各层各模块分工协作提供前提,为模块间实现解耦提供可操作性。当模块之间摆脱技术细节,甚至可以进行并行软件开发。分层后的优势很明显,如果平台更换或驱动变了,只需要修改驱动层;如果功能扩展了或裁剪了,只需要修改功能模块层;如果编程语言自己定义的控制协议修订了,只需要修改服务层,都不会影响前端应用的开发。分层设计的软件,代码结构清晰容易理解,层与层通过接口隔离利于问题排查,函数抽象化便于复用。开发者可以根据用户的具体需求对软件进行合理的配置,从而既提高了软件的应用范围,又提升了软件的应用率[3]。

4 结束语

目前,嵌入式软件已经在我国软件市场中占有较大的比例,但是在实际研究过程中因为经费和研究水平问题导致嵌入式软件的应用具有较大的局限性,所以,负责软件开发和架构建设的工作人员必须要尽量缩短产品的研发周期,并且使用更多先进技术提高研发效率。

猜你喜欢
嵌入式软件功能模块调用
嵌入式软件测试数据传输稳定性检测方式分析
基于安全性分析的嵌入式软件测试
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
全景相机遥控器嵌入式软件V1.0 相关操作分析
基于VPRS方法的汽车嵌入式软件品质评估
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
高校二手交易网络平台功能及技术框架分析与设计
利用RFC技术实现SAP系统接口通信