下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、航天嵌入式软件虚拟测试环境的关键技术摘要:虚拟测试环境在航天嵌入式软件领域具有广泛的应用前景。本文总结了航天嵌入式软件虚拟测试环境的一般需求和设计目标,概要介绍了虚拟测试环境构造的关键技术。关键词:嵌入式 软件测试 虚拟环境 1.引言根据阿兰.图灵和阿隆佐.丘奇的理论,所有计算机之间都能够互相模拟。1936年,图灵在其发表的划时代论文论可计算数及其对判定问题的应用中,证明了能够模拟任意计算机的通用计算机的存在。图灵这样定义“模拟(Simulation)”的概念1:当一台数字计算机运行一个状态转移表(即运行一个程序),而该状态转移表描述了另一台离散状态机器的转移状态、输入和输出时,则该计算机(前
2、者)在模拟另一台机器(后者)。这就是计算机模拟技术的理论基础。而直接利用这一理论的实际成果则可以追溯到上世纪五十年代的EDSAC项目2。进入二十一世纪以来,随着计算机硬件性能飞速提高和软件技术的不断进步使得计算机模拟技术也取得高速发展,并进入实用阶段。目前,人们更习惯把计算机模拟技术称为虚拟技术,把模拟的目标机成为虚拟机。利用虚拟技术,可以任意参数化、控制和检查被模拟的系统-目标系统;能够进行非侵入的和确定的测量;为进行自动化操作提供了必要条件。目前虚拟技术广泛应用于异构计算机移植、处理器内核设计、计算机系统设计、操作系统及应用软件的开发和测试等广泛的领域。而航天嵌入式软件测试领域特别适合于应
3、用虚拟技术。a 嵌入式系统采用的处理器通常与PC机采用的处理器不同,嵌入式软件的开发需要交叉开发环境;b 一般卫星、飞船上采用的处理器的运行速度远低于PC机采用的处理器,为高效地在PC机上虚拟目标机提供了可能;c 航天嵌入式软件的可信性要求高,必须要通过充分的测试,保证软件质量。而硬件测试环境的缺乏和固有缺陷已经成为制约软件测试充分性的瓶颈。因此,利用虚拟技术,构建航天嵌入式软件的虚拟测试环境越来越受到重视。所谓虚拟测试环境是指应用软件仿真技术,逼真地模拟被测软件运行的物理环境,在其上通过动态执行被测软件进行的软件确认与验证活动。理想情况下,原来运行于真实环境上的嵌入式软件,可以不加修改直接在
4、虚拟环境上运行,并且其运行的动态特性与在真实环境上一致。虚拟测试环境所固有的高可用、高可控、确定性、易于复制使用等特性,为进行软件测试提供了理想的测试环境。虚拟测试环境不能完全替代硬件测试环境,却是对硬件环境的有效补充。下文中将对航天嵌入式软件虚拟测试环境的一般需求和关键技术进行讨论。2.虚拟测试环境的需求分析虚拟测试环境的主要功能可以分为两个层次:对嵌入式硬件系统和外围环境的仿真;为进行嵌入式软件调试、测试、运行时验证等而设计的功能,简称测试功能。1) 对嵌入式硬件系统和外围环境的仿真嵌入式硬件系统和外围环境的仿真包括对嵌入式硬件系统进行的仿真以及对嵌入式系统所处的外围环境的仿真,例如对于星
5、载嵌入式系统,不仅要对星载嵌入式硬件系统进行模拟,而且要对星体动力学、轨道动力学、空间环境等进行模拟。对嵌入式硬件系统和外围环境的仿真可以划以下几个功能模块和层次。图2-1 嵌入式硬件系统和外围环境仿真a CPU模拟器CPU模拟器对目标CPU的内核进行模拟,将目标机的指令转换为宿主机上的指令执行,从而实现在宿主机上执行目标机上的代码。用于软件测试目的的CPU模拟器是一种指令集模拟器(Instruction Set Simulator,ISS),是用软件模拟一个处理器上程序执行过程的软件工具,它建立了处理器的仿真模型,通过模拟每条指令在目标处理器上的执行效果来模拟执行被测程序。ISS模型主要对包
6、括寄存器、寻址方式、指令集定义在内的处理器指令集体系结构设计进行模拟,建立了精确到指令周期边界的指令集体系结构(Instruction Set Architecture)模型。b 虚拟芯片虚拟芯片是对功能独立的芯片的软件仿真,这类芯片的特点是与主处理器的接口简单,功能单纯,且往往是可编程的。例如中断控制芯片、总线控制芯片等。c 虚拟目标机虚拟目标机是对嵌入式目标机进行的软件仿真,通过CPU模拟器和虚拟芯片的装配可以构成虚拟目标机。d 目标机外围环境的仿真作为一个研究对象的软件所加载的目标机通常仅是一个系统中的一部分,要使对象软件象在真实环境中一样运行起来,必须对目标机外围环境进行仿真,外围环境
7、为软件运行提供必要的资源。例如,为对卫星姿控软件进行测试,除了对姿控计算机进行模拟外,还需要对与姿控计算机关联的敏感机构、执行机构、数管系统、卫星姿态和轨道动力学进行建模仿真。e 虚拟子系统虚拟目标机和目标机外围环境的仿真共同构成对子系统的仿真虚拟子系统。一般来说,在虚拟子系统中就可以对某个软件配置项进行调试、测试和验证。例如,构建卫星姿控分系统的虚拟子系统就可以满足对卫星姿控软件的调试、测试和验证需要。f 虚拟系统对于大型嵌入式系统往往由多个子系统构成,每个子系统完成特定的功能,通过各种总线、网络进行连接,协作完成系统功能。例如,卫星系统是由控制、推进、数管等过个分系统构成的复杂系统,甚至某
8、个分系统本身就是包含多个子系统的复杂系统。在这种复杂系统中多台目标机、多个软件配置项同时运行,实时进行数据和控制交互。要在这种复杂环境中,对多个软件配置项同时进行调试、测试、验证,就需要对整个系统进行仿真,即构建虚拟应用系统。简单来说,多个虚拟子系统构成虚拟应用系统。在虚拟应用系统中,不仅能够对单个软件配置项进行调试、测试、验证,而且能够对各软件配置项之间的数据和时序接口进行验证,对整个系统的功能进行验证,尤其可以针对系统级的故障模式进行充分。验证。g 虚拟系统生成器虚拟系统本身是一个复杂系统,但应具有能够快速构建的性质。软件研制人员可以通过虚拟系统的配置信息对被模拟的嵌入式系统进行描述,由虚
9、拟系统生成器读入配置信息,快速构建出特定的虚拟系统,而不需要大量的重新编码、链接工作。h 虚拟系统运行时仿真框架虚拟系统是由包括CPU模拟器、虚拟芯片、外围仿真等仿真模块构成的复杂软件仿真系统,除了需要像在真实系统中一样要维护仿真模块之间的静态连接关系外,当仿真开始运行后,需要在运行时动态进行仿真模块之间的仿真同步、数据传递、控制转移、事件通知等。因此,需要建立虚拟系统运行时仿真框架,在仿真运行时实时维护系统状态。虚拟系统实现了对嵌入式硬件系统和外围环境的仿真,理想情况下,虚拟系统可以完全替代真实系统。但仅仅实现对真实系统模拟还远远不够,虚拟测试环境的优势体现在其对软件调试、测试和运行时验证等
10、提高软件可信性手段能够提供最大化的支持,使得在硬件测试环境中难以进行或无法进行的测试和验证活动容易进行或可以进行。2) 测试功能虚拟测试环境提供的测试相关功能一般包括:a 基本调试功能具体包括:被测软件源代码浏览、目标码加载、反汇编、单步运行、全速运行、运行停止、复位、CPU寄存器显示和修改、内存显示和修改、各种断点功能、变量监视等。b 运行状态监视和记录功能具体包括:目标码执行语句、分支覆盖记录、路径覆盖记录等;运行时间记录、内存使用情况记录、堆栈使用情况记录、中断及异常事件记录、状态保存、运行状态的实时监控等。c 运行状态控制功能具体包括:运行过程回溯和回放、并发事件触发、小概率事件重复触
11、发、各仿真模块的故障触发、支持自动脚本控制、仿真速度尽量快等。3) 总体目标虚拟测试环境设计的总体目标为:a 充分支持航天嵌入式软件调试、测试、验证的功能和性能要求,提供系统级仿真的能力;b 具备可扩展能力,对被仿真系统的处理器数量、芯片的数量、子系统的数量没有限定,对于处理器的种类、芯片的种类没有要求;c 具备异构能力,支持针对不同处理器的嵌入式系统进行模拟,不受目标处理器、语言、操作系统的限制;d 具有兼容性,支持不同仿真模型的集成,各仿真模型可以由脚本、各种编程语言、Simulink等实现;e 具有通用性,并不局限于针对某种嵌入式系统;f 结构灵活,可以针对被模拟系统的复杂性,采取单一主
12、机模拟或采用分布式网络环境模拟的形式;g 快速搭建,能够快速搭建对被仿真系统的虚拟测试环境;h 实时性高,虚拟测试环境的实时特性满足软件测试和验证的需要;i 仿真速度快,虚拟测试环境的仿真速度必须可以接受;j 易于使用,安装简便,使用界面友好。3.虚拟测试环境实现的关键技术虚拟测试环境的功能复杂,实现难度大,这也是市场上缺乏功能和性能俱佳的虚拟测试环境软件工具的重要原因。下面对虚拟测试环境实现的关键技术进行概述。3.1虚拟测试环境体系结构设计通过对虚拟测试环境的需求和总体目标的初步分析,可以得知虚拟测试环境是集成了各种软件工具、软件模块的复杂软件系统。成功的软件系统必须具有良好的软件体系结构。
13、平台体系结构的优劣,对于平台的功能完整性、易用性、可扩展性、可重用性、平台实现的复杂性等都将产生决定性的影响。鉴于软件体系结构的重要性,D.E.Perry将软件体系结构视为软件开发中第1类重要的设计对象3,而Barry Boehm明确指出:“在没有设计出体系结构及其规则时,那么整个项目不能继续下去,而且体系结构应该看作是件开发中可交付的中间产品”4。虚拟测试环境系统属于是由于软件密集的大规模系统,必须从一个较高的层次来考虑组成系统的构件、构件之间的交互,以及由构件与构件交互形成的拓扑结构,这些要素应该满足对总体设计目标的要求,据此开发的系统能完成系统既定的功能和性能需求。在虚拟测试环境的体系结
14、构设计中,应从以下几个方面开展研究:a 虚拟测试环境构件设计一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辩识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。在本部分研究中,将在平台需求进行分析的基础上,对平台功能进行概括、抽象和分解,形成各子功能的概念模型,研究各模型提供的服务功能和接口形式,形成面向不同功能和层次的虚拟测试环境构件,例如,CPU模拟器构件、虚拟芯片构件、虚拟子系统构件等。各种仿真模型被构件后,其具体的实现被隐藏,只用接口提供服务,可以满足对系统可扩展、异构、兼容的要求。b 协议层设计在虚拟测试环境中,CPU模拟器、虚拟芯片、
15、虚拟目标机、虚拟子系统等在仿真运行过程中完成各自对象的仿真,并按照真实的接口操作方式和协议实时进行交互,交互方式包括端口操作、引脚电平触发、总线通讯、网络通讯等,而虚拟测试环境必须通过软件仿真的方式保证这些交互操作的与真实系统的接口一致、数据一致、动态特性一致。为此,在虚拟测试环境中需要建立不通层次的关于仿真控制、通讯、数据存取、同步的协议,各构件将按照协议完成与虚拟测试环境中其它构件的同步和交互。c 体系结构设计基于平台功能和性能需求,在平台构件和协议层设计的基础上,进行虚拟测试环境体系结构设计。在进行平台体系结构设计时,需要重点考虑多CPU模拟器同步仿真、多子系统同步仿真、分布式同步仿真对
16、体系结构设计的影响。其中涉及的关键问题包括:a 仿真模型构件化对虚拟测试环境中存在的CPU模拟器、虚拟芯片、虚拟子系统等不同层次的仿真模型进行功能抽象、接口封装,形成标准化的构件供虚拟测试环境调用。b 仿真模型接口协议仿真模型接口协议是仿真模型构件与平台进行数据和控制交互的标准,每个仿真模型都必须实现该协议才能与平台正确交互,而实现了该协议的仿真模型就能够被系统识别并正确交互。c 多CPU模拟器同步仿真CPU模拟器是虚拟目标机的核心,一般以CPU模拟器的仿真时间作为整个虚拟目标机和虚拟子系统的时间同步基准。但当需要对多个子系统同时进行仿真时,就需要考虑多个子系统之间的时间同步问题,也即多CPU
17、模拟器同步仿真问题。d 分布式的虚拟系统仿真航天嵌入式系统需要多个子系统配合完成任务,为此虚拟测试环境必须具备同时对多个子系统进行同时仿真的能力,并保证多个子系统间实时交互,满足时序和实时要求。在这种情况下使用单机对整个系统仿真,将造成单机负荷多大,影响仿真速度,为此需考虑基于多机网络,充分利用网络上的单机,实现多机协同系统仿真。涉及的关键技术包括:高效的多机同步仿真;多机同步仿真数据传输协议等。e 虚拟系统自动生成技术定义对虚拟系统进行描述的方式,形成虚拟系统的配置信息,自动生成针对特定嵌入式系统的虚拟系统,满足快速构建虚拟系统的要求。3.2 CPU模拟器优化技术仿真速度是考核虚拟测试环境的
18、重要指标,而虚拟测试环境的仿真速度在很大程度上依赖于CPU模拟器的仿真速度,因此提高CPU模拟器的仿真速度是虚拟测试环境研究的一个重要内容。目前有很多种常规的优化模拟器速度的方法,如穿线代码、译码指令缓存、JIT编译等。对于航天嵌入式应用,其使用的处理器具有多种体系结构,如x86系列、Ti DSP系列、PowerPC系列等。针对不同的处理器,其对应的CPU模拟器也具有更适用的优化方法。因此,需要研究航天应用的不同处理器的体系结构、不同类型CPU模拟器的优化方法,综合运用多种速度优化技术,减少模拟执行一条目标机指令平均需要的宿主机指令数目,达到提高性能的目的。3.3虚拟测试环境运行状态监视和控制
19、功能实现技术虚拟测试环境除了提供对嵌入式硬件系统和外围环境的仿真,其更为重要的功能是为嵌入式软件调试、测试、运行时验证等提供有力的支撑。这项功能也是虚拟测试环境相对硬件环境的关键优势所在。相对于硬件环境,在虚拟测试环境中实现这些功能要相对容易,但由于不同于硬件可以并行执行,软件仿真串行执行的特点导致这些功能的实施必然会对虚拟测试环境的仿真速度产生不利影响,造成虚拟测试环境的性能下降。如果这种性能下降到难以接受的程度,则虚拟测试环境的优势将不复存在。但从测试和验证的充分性考虑,总是希望对环境运行状态监视和控制功能尽量完备。因此,在实现虚拟测试环境运行状态监视和控制功能时,需要特别考虑对环境仿真速度的影响,这是环境实现技术中的重要研究内容之一。4.结束语虚拟测试环境在航天嵌入式软件领域具有广泛的应用前景,并且其应用范围不断扩大。围绕虚拟测试环境的构建技术已经开展了广泛的研究。本文概要介绍了航天嵌入式软件虚拟测试环境的一般需求和实现的关键技术,各项关键技术的具体实现还需要进一步深入的研究。参考文献:1Turing, AM. On Computable Numbers, with an Application to the EntscheidungsproblemJ. Proceedi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年建筑行业设备租赁协议模板
- 2024年软件销售协议精简
- 2024年房产优惠促销买卖协议
- 2024年钢结构建设分包商协议范例
- 2024年家用电器采购协议范本
- 2024新测量服务外包协议格式
- 2024年工程总承包施工协议样本
- 劳动技术活动记录文本
- 动态培训课件教学课件
- 仓库管理员合同延长期
- 朝花夕拾读书分享会
- 心肌病和心肌炎课件
- 突发事件应急处理知识培训
- 糖尿病专科护士考试试题
- 人工智能概论-人工智能概述
- 乡村旅游财务分析策划方案
- 高校学生事务管理1
- (中职)ZZ030植物病虫害防治赛项规程(7月19日更新)
- 2024年国能包神铁路集团有限责任公司招聘笔试参考题库附带答案详解
- 非甾体类抗炎药课件
- 出入库登记管理制度
评论
0/150
提交评论