文献综述(或调研报告):
嵌入式系统的作用是将逻辑电路和软件结合成的计算机控制系统嵌入到已经具有某种特定功能的系统里以实现对原有系统的计算机控制,比如实现无需人力干预的对输入输出的管理。它是很多现代电子产品的关键部件,小到我们常用的手机,大到复杂的航天设备,都需要这样的一个系统。P. Zhang et al.在文献[1]中便介绍了一种嵌入到航空电子设备中用以实现硬件/软件协同认证和实时测量等控制功能的嵌入式工具。而由于嵌入式系统需要提供的是控制功能,不宜占用太多系统资源,所以对系统进行裁剪定制、仅保留必要的功能以使其尽可能最小化就显得尤为重要。目前使用最广泛的便是嵌入式Linux,它是对标准Linux经过小型裁剪处理后得到的,可以固化到容量只有几MB甚至几KB的存储器芯片或单片机中,同时保留了Linux低成本、多硬件平台支持和良好的网络支持等优点。但现有的嵌入式Linux市场分化严重,包括半导体厂商提供的实例方案、嵌入式OSV提供商应用的嵌入式Linux产品、嵌入式产品开发商的自有方案和开源项目等。严重缺乏一致性导致了嵌入式开发高昂的维护成本,开发者需要完整地进行制作交叉编译工作链、移植u-boot、配置并编译Linux内核、制作根文件系统的开发流程,具有很高的的架构依赖性,对于不同的架构往往要对工具链进行重新配置和编译,导致了大量的重复工作。Yocto项目就在这样的背景下横空出世了。
Yocto项目是一个开源合作项目,它可以帮助开发者制作在任何硬件架构下的定制的Linux系统,通过开源协作的方式,使得嵌入式Linux的订制和开发标准逐步走向统一。该项目提供了一系列复杂的工具和场地,世界各地的嵌入式开发者们可以在这上面共享他们的技术、软件栈、配置以及最好的例子,这些例子可以用来给嵌入式设备、IOT设备制作定制的Linux镜像,甚至于所有需要Linux系统的地方,都可以用得上。它的优点有很多:软件栈可以被重复利用、经过验证的软件和库可以很方便地载入、对多种BSP/架构都能支持、包含大量的应用程序开发工具等等,极大地减轻了开发人员的负担,使得他们可以把工作重心放在功能订制和特性增值上。A. P. Navik and D. Muthuswamy在文献[2]中利用Yocto Linux搭建用于IOT平台的双频段WLAN网关解决方案,A. Leppauml;koski, E. Salminen and T. D. Hauml;mauml;lauml;inen 在文献[3]中展示了利用Yocto项目处理构建基于Linux的控制软件并为PCCP添加了一个新层,都显示利用Yocto项目的便利性等诸多优越性。
Yocto项目的一个重要特征是开源协作,如今,随着Internet和分布式技术以及云计算和物联网技术的日渐成熟和不断发展,多用户协同开发正逐渐取代集中式的开发模式,成为软件开发的主要工作模式,目的之一便是减少重复性工作,使开发者更专注于自己的工作,这与Yocto项目的初衷不谋而合,但是在协同开发过程中,总会有人或是理解出现偏差、或是传递出现偏差,容易在后期对多人工作成果进行整合的时候出现一系列问题,而Yocto项目在推动嵌入式Linux的订制和开发标准的统一过程中诞生了许多利于实现标准化的工具和思想,所以研究如何基于Yocto项目实现软件协同开发,既符合Yocto项目的诉求,又可以充分利用其优势,故而具有十分好的发展前景。
除此之外,在测试任务中,Yocto项目也体现出了极高的应用价值。
对于硬件测试,测试任务要求对每一个电路板甚至每一个硬件单元比如SPI, UART, GPIO, PWM等都要做独立的测试,这显然不适合通过手工的方式来完成,所以研究如何实现自动测试就显得很重要。但自动测试则要求对每一个电路板都定制各自的测试系统,这同样带来了不小的工作量。而Yocto项目则可以帮助测试工作者制作一个可以用于多种电路板的测试系统,这其中使用到的工具便是Yocto项目提供的Bitbake。这个工具是使用Python语言编写的,它支持多线程和调度功能,这样便可让测试工作者在单个系统上测试多个电路板。H. Khandelwal, P. Mankodi and R. Prajapati 在文献[4]中描述了如何利用Yocto项目实现这样的自动测试,并展示了如何建立.service文件来帮助实现这一自动化。
而在嵌入式软件测试方面,作为一项传统的信息技术,其早期通常采用手工操作的方式,对人力、物力和时间资源的消耗都很大,且易受到人为因素的影响。研究如何将自动化测试投入到嵌入式软件测试中,不仅可以降低人力、物力和时间成本,还能为测试任务提供更好的测试环境,而且不易遗漏,具有极高的开发研究意义。对比传统的软件测试,嵌入式软件运行环境会随目标机改变而有所不同,且对运行环境的稳定性提出了较高要求,而Yocto项目可以提供的这样的操作系统订制,使开发人员很容易地订制自己的操作系统,从而把更多精力放在测试应用的开发和必要的测试数据分析和处理上。同时由于Yocto项目对多种架构的全面支持,测试工作者无需过多担心移植问题,多种目标板子甚至可以共用一套测试工具,更好地为自动化测试开路。此外,嵌入式软件测试技术中,宿主环境测试是一个重要方面,但是这种方式运行时容易受到外界环境的干扰,而且测试结果并不一定能完全反应投入使用后软件运行在目标机上的效果,而Yocto项目中提供了runqemu脚本,可以使用QEMU虚拟机更好地模拟数字化环境以对软件进行更可靠的测试。由此可知,研究如何基于Yocto项目进行自动化测试既有极高的应用价值,也具备良好的前提条件。
[1] P. Zhang et al., 'Automation and Integration of Hardware/Software Co-Verification Tool with Embedded Multi Processors System-On-Chip (MPSoC) Instrument Avionics for Next Generation Imagining Spectrometer (NGIS): On-Chip LiveCheckHSI,' 2019 IEEE Aerospace Conference, Big Sky, MT, USA, 2019, pp. 1-10.
[2] A. P. Navik and D. Muthuswamy, 'Dual band WLAN gateway solutions in Yocto Linux for IoT platforms,' 2017 International Conference on Internet of Things for the Global Community (IoTGC), Funchal, 2017, pp. 1-3.
[3] A. Leppauml;koski, E. Salminen and T. D. Hauml;mauml;lauml;inen, 'Framework for industrial embedded system product development and management,' 2013 International Symposium on System on Chip (SoC), Tampere, 2013, pp. 1-6.
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。