嵌入式软件设计中的关键技术及其实现

(整期优先)网络出版时间:2024-03-12
/ 2

嵌入式软件设计中的关键技术及其实现

张雪华  郑飞  杨亚  孙泽宏

陕西烽火通信集团有限公司  陕西宝鸡   721006

摘要:嵌入式系统的开发过程通常从自主开发硬件和软件开始,自主开发硬件部分形成平台,自主开发软件部分则是开发模块、组件、配置元素。硬件平台经过测试,相应开发软件集成到该硬件平台上,实现各种功能和性能要求。

关键词:嵌入式软件;设计;关键技术;

前言:在嵌入式系统开发过程中,核心驱动程序、操作系统和应用程序的界限被模糊,甚至在必要时被混合。最终确定是否可以实现嵌入式系统的主要功能和性能要求,需要在硬件平台上进行联合测试。

一、嵌入式软件设计中的缺陷

嵌入式软件的主要作用不是转换数据,而是与物理世界进行交互。它们在各种机器上运行,这也预先确定了嵌入式软件必须具有物理世界的某些特征,并考虑电力消耗的时间。任务在启动后完全无限制地执行,除非系统因某种原因完全崩溃或关闭。因此,这不是一个理想化的图灵机,这是嵌入式软件和通用软件之间的本质区别。系统功能和性能要求必须由软件和硬件平台一起实现。因此,嵌入式软件的开发过程是软件和硬件之间协调、反馈和测试的过程。在大多数情况下,嵌入式软件没有连续性,软件和硬件形成一对一的关系。随着硬件的不断更新,相应的软件必须不断重构。这就造成了软件负担大、继承性差。另一方面,由于硬件更新快,软件开发过程中缺乏硬件平台的支撑,就会经常出现:软件完成时,硬件仍在开发中;硬件完成后,软件无法确定产品功能和操作要求能否实现。

二、嵌入式软件设计中的关键技术及实现

从嵌入式软件开发的角度进行分析,对系统的实施进行全面分析,将有助于推进开发的实施。一方面,有必要进行初步分析,并逐步形成指导计划。分析系统需求,对各个方面进行仔细和彻底的需求分析,不仅要考虑细节,还要系统地考虑一切。根据这个想法,在系统地分析这项工作之前,有必要先进行初步分析,继而形成一个实际的计划,帮助开发人员提高效率。分析工作在整个设计工作中非常重要,需要我们用心思考,细致的需求分析可以帮助设计师组织实现思路,同时还可以避免工作中走很多弯路。设计方法的持续改进可以有效地提高关键技术,调用函数的更完整的定义是模块化设计。通常在模块化设计中有相对简单的函数集,同时有辅助函数来实现重要的模块。外部调用开发的函数必须明确定义这些参数的范围、参数约束和接口输入的参数类型。在这里,有必要明确区分内部和外部调用函数使用的功能,并具有用于定义多个源文件的头文件。最好的处理方法是将外部调用接口函数集中到一个头文件中。

嵌入式软件设计还可以选择数据库备份和恢复策略。创建数据库备份以恢复损坏的数据库。但是,备份和恢复数据必须针对特定的环境进行配置,并且必须使用可用资源。因此,数据库的可靠恢复,需要备份和恢复策略。自动化测试系统数据库的备份和恢复由控制台执行。数据库访问程序首先解决、配置操作系统中动态注册的数据源或使用 Windows 提供的功能。定期备份数据库是防止磁盘故障、系统故障的最可靠方法。它允许有效恢复数据,是确保恢复大部分信息的最简单方法。结合自身的备份功能,所有数据库都定期复制到一定的目录中。自动化测试系统也可以在程序中添加功能代码,以保证每次退出程序之前都会对数据库进行备份。这两种策略都有很好的备份速度和良好的稳定性。

算法在嵌入式软件中尤为重要。为了改善和提高软件的性能,必须将功能算法进行优化,要养成优化函数算法的良好的习惯。头文件往往看起来比较复杂,它需要定义外部函数,数据结构常量特别多。这就需要我们养成一致性的良好习惯,主要涉及编写函数名称,使用分隔符,使其保持风格一致性,简化,即缩短而不是整个短句。算法优化这对实现功能很重要。在现实分析中,编程策略只是一个算法。因此,算法在设计过程中,包括用计算方法开发的算法、循环等,经过优化,优化时间、优化代码存储空间……然后在优化后占用相对较小的内存空间,以提高性能。目前,微控制器经过多年的研究,创造了多种类型。这些处理器处理时钟更快更高,因此它们可以更好地处理不同类型的应用程序。最佳结果将是这两个因素的组合,但不是完美的。这需要在每种情况下进行具体的分析,简化代码,添加注释。这是在项目的后期阶段执行的相关工作。一方面是优化本地代码,例如组合类似的分支,改变循环结构等; 另一方面是删除无用的变量,完善代码注释,从而提高代码的可读性。

设计和编写测试报告,记录测试过程和结果,分析发现的问题和不足,为解决模块质量问题提供了基础,并为模块验收和交付奠定了基础。自动化测试系统的测试报告由程序自动生成,包括测试时间、测试人员、被测模块类型、测试元件额定值、测试结果数据和测试结果。对于IDE和其他测试的故障数据,测试报告还应包括测试使用和故障评估的数据。目前,较成熟的文本报告生成方法主要基于平台,报告生成控制元素,如报告生成工具包。开发平台为 Word 和 Excel,它们直接调用提供函数,使用脚本语言创建固定报表模板。对于不同的测量模块,测量设计可能不同。因此创建测试报告的有效方法是以表格形式生成测试报告。从数据库中读取实际数据,并为该功能提供单一接口,在接口中指定测试模块类型和其他信息。因此在不同测试模块的测试控制窗口中,可以调用相同的接口来自动生成测试报告。即使是自动化测试系统也必须生成实时测试报告。测试完成后,它们支持使用单一接口从数据库中读取数据,以避免在准备测试报告时存储测试数据。测试问题经过实际的工程验证,可以提高软件的稳定性,而不会对效率产生太大影响。在设计过程的后期阶段,一个重要方面是测试和改进,这对于整个嵌入式软件的开发过程特别有用。

结束语

嵌入式软件需要的计算视角与现代流行的计算抽象完全不同,该软件直接与物理世界交互,自动化测试系统对嵌入式模块的开发具有很高的应用价值。随着硬件模块化设计成为趋势,各种测试方法逐步完善,软件开发过程的通用性和自动化测试系统的使用,必然使得自动化测试系统软件开发成为趋势。

参考文献:

[1]常佩禹.基于代码结构信息的软件缺陷定位方法研究[J].计算机应用研究,2016,33(8):2371.2374.

[2]王赞雨.一种基于遗传算法的多缺陷定位方法[J].软件学报,2019,27(4):879.900.

[3]付儒,谢鹏嵌入式软件中断数据竞争安全性检测技术研究[J].航天控制,2019,33(3):79.82.