CN112463614B - 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 - Google Patents
一种基于硬件板卡接入的软件虚拟化测试环境构建方法 Download PDFInfo
- Publication number
- CN112463614B CN112463614B CN202011392719.6A CN202011392719A CN112463614B CN 112463614 B CN112463614 B CN 112463614B CN 202011392719 A CN202011392719 A CN 202011392719A CN 112463614 B CN112463614 B CN 112463614B
- Authority
- CN
- China
- Prior art keywords
- virtual
- environment
- board card
- message
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 47
- 238000010276 construction Methods 0.000 title abstract description 12
- 238000004088 simulation Methods 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000006854 communication Effects 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000003044 adaptive effect Effects 0.000 claims abstract description 4
- 238000009434 installation Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 59
- 239000003795 chemical substances by application Substances 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 30
- 230000005284 excitation Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 9
- 230000010365 information processing Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000013519 translation Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G06F11/3664—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于硬件板卡接入的软件虚拟化测试环境构建方法,其中,包括:搭建嵌入式目标处理器指令集虚拟仿真环境;搭建嵌入式系统片上设备虚拟仿真环境;完成硬件板卡在宿主机上的适配安装,实现宿主机虚拟环境下对板卡的操作与控制;建立外部设备模拟环境与宿主机硬件板卡的物理连接,建立外部设备模拟环境与硬件板卡的通信链路;获取虚拟环境下对外部设备模拟环境消息,建立虚拟环境下的消息处理响应机制,将外部设备模拟环境发送的消息通过硬件板卡完整的反馈给虚拟运行环境;处理虚拟环境下对外部设备模拟环境消息,建立虚拟环境下状态更新机制,将虚拟运行环境处理后的消息结果和消息状态通过硬件板卡准确的反馈给外部设备模拟环境。
Description
技术领域
本发明涉及嵌入式系统技术,特别涉及一种基于硬件板卡接入的软件虚拟化测试环境构建方法。
背景技术
嵌入式系统研制过程中,一般通过半实物仿真测试环境进行嵌入式软件的开发调试。半实物仿真测试环境通常包括真实目标机、外部设备模拟环境以及配套的连接件、电缆等,其中外部设备模拟环境能够模拟嵌入式系统外部环境的总线激励和逻辑响应处理。半实物仿真测试环境下,嵌入式软件运行于真实的目标机之上,软件的性能和总线的接口特性能够得到充分的验证,但囿于嵌入式系统硬件资源有限、硬件接口专用性强等特点,嵌入式软件的动态执行情况难以精确统计,并且基于硬件的运行环境故障注入存在较大局限,因此,嵌入式软件的测试充分性不易保证。
软件虚拟化测试技术通过指令集仿真实现嵌入式系统虚拟目标机,使得软件运行情况透明可控并能够实时统计软件运行状态、生成代码覆盖率统计分析数据,是提升软件测试充分性的有效手段。
为了满足嵌入式软件测试充分性的要求,同时实现外部设备模拟环境的有效复用、避免重复开发,发明了基于硬件板卡接入的软件虚拟化测试环境构建方法,通过设备总线硬件板卡桥接,实现已有系统总线激励环境和虚拟目标机的交联互通,继而支持开展软件虚拟化测试。
传统的基于实装或半实物环境的测试环境存在资源利用率低、测试成本高、测试周期长、出现故障不可逆、覆盖率获取困难等问题,尤其是在硬件设备设计定型之后,由于缺少相应的硬件接口、基于硬件环境的代码覆盖率统计分析变得更加困难;而单纯的基于指令集仿真技术构建的虚拟化动态测试环境虽然可以减少软件测试对专用硬件环境的依赖、提供包括源代码、目标码在内的覆盖率统计分析手段,实现测试环境快速部署,但单一的虚拟化测试环境难以复用已有的外部激励注入等专用检测设备,重新实现功能容易造成资源浪费,重复工作和测试周期延后等问题。
发明内容
本发明的目的在于提供一种基于硬件板卡接入的软件虚拟化测试环境构建方法,用于解决当前半实物仿真测试环境下无法保障软件测试充分性的问题。
本发明一种基于硬件板卡接入的软件虚拟化测试环境构建方法,其中,包括:第一步、搭建嵌入式目标处理器指令集虚拟仿真环境;第二步、搭建嵌入式系统片上设备虚拟仿真环境;第三步、完成硬件板卡在宿主机上的适配安装,实现宿主机虚拟环境下对板卡的操作与控制,包括板卡初始化、板卡打开、板卡通道设置以及消息设置;第四步、建立外部设备模拟环境与宿主机硬件板卡的物理连接,建立外部设备模拟环境与硬件板卡的通信链路;第五步、获取虚拟环境下对外部设备模拟环境消息,建立虚拟环境下的消息处理响应机制,将外部设备模拟环境发送的消息通过硬件板卡完整的反馈给虚拟运行环境;第六步、处理虚拟环境下对外部设备模拟环境消息,建立虚拟环境下状态更新机制,将虚拟运行环境处理后的消息结果和消息状态通过硬件板卡准确的反馈给外部设备模拟环境,完成消息处理闭环响应。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,虚拟部分负责仿真被测程序的运行环境,运行在宿主机上,实物部分负责实现外部激励,运行在上位机上;引入板卡代理设备实现虚拟半区和实物半区的消息无差别传输,在虚拟半区,板卡代理设备具有和虚拟片上设备完全相同的接口,虚拟片上设备和板卡代理设备可以通过虚拟总线进行通信,在实物半区,板卡代理设备集成真实的物理设备板卡,通过物理总线与物理设备进行通信,进而实现虚拟半区和实物半区的消息无差别传输。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第一步、搭建嵌入式目标处理器指令集虚拟运行环境,具体包括:(1)根据目标处理器的指令集描述说明对目标文件中的二进制指令代码进行取指、译码以及翻译操作,将运行于嵌入式目标环境的代码采用高级语言重新描述;(2)采用动态二进制编译框架,在对重新描述过的目标代码执行过程中实现动态加速,将指令仿真速率提升至不低于真实处理器的水平,达到硬件板卡接入下的时序要求;(3)在目标代码仿真执行过程中对指令的执行过程进行实时统计和监测,为后续的指令分析和测试验证采集数据。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第二步、搭建嵌入式系统片上设备虚拟仿真环境,具体包括:分析嵌入式系统片上设备的组成,分析片上设备的功能特性和交互逻辑,实现嵌入式系统存储空间的模拟,针对每一个片上设备创建虚拟仿真模型,建立嵌入式软件设备空间和宿主机虚拟运行空间的映射关系。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,嵌入式软件设备空间和宿主机虚拟运行空间的映射关系包括;虚拟串口控制器、虚拟定时器、虚拟FLASH、虚拟AD、虚拟IO以及虚拟1553B;虚拟串口控制器:通过虚拟运行方式实现串口收发和中断触发;虚拟定时器:通过虚拟运行计数实现定时逻辑的模拟和中断触发;虚拟FLASH:通过虚拟空间实现软件代码段、数据段存储和程序镜像加载;虚拟AD:通过虚拟运行实现多通道AD采集及数据的归一化转换和处理;虚拟IO:通过虚拟运行实现开关量、按键等IO模拟;虚拟化1553B:通过虚拟运行实现1553B总线中的BU61580控制器逻辑基本功能。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第三步中,板卡代理设备实现包括:(1)将硬件板卡通过PCI插槽等接口形式安装在宿主机中并能够被正确识别;(2)在宿主机中实现或安装硬件板卡驱动,实现虚拟环境下的硬件板卡API调用与集成;(3)调用硬件板卡设备驱动程序API接口进行板卡代理设备实物部分初始化,完成硬件板卡工作模式、中断触发模式、消息通信模式设置;(4)板卡代理设备消息缓冲区初始化;(5)板卡代理设备虚拟部分的初始化,完成虚拟设备工作模式以及虚拟总线的设置,挂载到虚拟运行环境相应内存地址上;(6)异常处理:(1)到(5)存在失败,则进行错误异常处理,重新进行代理设备初始化;若初始化成功,使能硬件板卡接收中断,将接收到的消息存储到消息缓冲区。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第四步中建立上位机与板卡代理设备的通信连接,具体包括:根据总线类型,选择相应的总线连接方式,进行上位机物理设备接口与宿主机板卡代理设备的物理连接,建立上位机激励环境与虚拟运行环境的通信链路;(1)上位机与板卡代理设备实物部分通过耦合器进行连接;板卡代理设备获取板卡代理设备实物部分通道ID,作为与虚拟部分通道进行映射的标识;(2)通道绑定后为每个通道分配消息缓冲区,消息缓冲区进行消息的暂存,防止消息丢失;(3)上位机消息通过物理通道发送到板卡代理设备实物部分,板卡代理设备实物部分与虚拟部分通过消息缓冲区进行数据交换,交换过程中实现格式的转换将消息传入到虚拟运行环境;(4)上位机与板卡代理设备通信链路建立起来后,为每个通信链路分配一个监听线程,记录通信数据和状态;(5)建立虚拟总线通道ID与板卡通道ID的映射关系,虚拟运行环境通过虚拟总线ID识别板卡代理设备并进行通信;(6)使能时间同步机制,在上位机与板卡代理设备通信过程中,根据虚拟运行环境运行速度进行时间同步,保证消息通信时序上的一致性。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第五步、虚拟环境下上位机激励环境的消息接收响应,具体包括:半实物仿真环境下,上位机激励环境中的板卡消息实时发送给硬件目标机,硬件目标机接收消息后立即反馈消息的接收状态,继而响应消息的指令进行处理,在虚拟仿真环境下上位机激励环境发送的消息首先通过物理连接传递到宿主机中的板卡代理设备上,由板卡代理设备实现消息接收,继而由虚拟运行环境进行消息处理。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第五步具体包括:(1)监听消息缓冲区数据,如果缓冲区不为空则进行数据处理;为空则阻塞,等待捕获新的消息,新的消息捕获后通知数据处理线程进行数据处理;(2)数据处理,捕获到新消息后,通过数据处理线程将代理板卡设备上收到消息进行格式转换,转换成对应的虚拟设备可识别的消息格式;(3)响应发送请求,实现消息发送逻辑,将处理后消息发送给虚拟运行环境,根据返回状态判断消息传输成功与否。发送成功则获取新得数据进行发送;发送失败则重新发送当前消息,根据设置阈值多次失败后抛弃此消息并记录。
根据本发明的基于硬件板卡接入的软件虚拟化测试环境构建方法的一实施例,其中,第六步具体包括:(1)获取虚拟运行环境消息结果和消息状态,通过虚拟设备总线接收到消息在虚拟环境中处理后反馈的结果和状态;(2)分析处理消息结果与状态,板卡代理设备中数据处理线程将虚拟运行环境反馈的消息结果和状态进行处理,按照板卡代理设备实物板卡的数据格式进行封装;(3)将反馈的消息结果与状态写入板卡,调用板卡代理设备实物板卡API,将封装后的消息结果和状态写入到板卡,继而与上位机通信时将结果和状态反馈到上位机。
本发明给出了一种基于硬件板卡接入的软件虚拟化测试环境构建方法,该方法首先采用虚拟化技术搭建嵌入式虚拟运行环境,通过设计针对嵌入式软件异常处理的测试用例并运行于仿真环境之上,在仿真执行过程中采集异常处理信息;然后将硬件板卡接入虚拟运行环境;最后通过解析和比对采集结果实现非侵入式的嵌入式软件异常处理机制验证。该方法实现嵌入式软件的执行过程透明可控、异常激励灵活多样,可有效提高嵌入式软件异常处理验证的充分性。
附图说明
图1所示为一种基于硬件板卡接入的软件虚拟化测试环境构建方法组成结构图;
图2为代理设备结构图;
图3为时序状态一致性处理示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为一种基于硬件板卡接入的软件虚拟化测试环境构建方法组成结构图,如图1所示,本发明一种基于硬件板卡接入的软件虚拟化测试环境构建方法包括:
第一步、搭建嵌入式目标处理器指令集虚拟仿真环境
嵌入式目标处理器指令集虚拟仿真环境采用虚拟化技术实现目标系统中嵌入式处理器的高精度高性能仿真,提供嵌入式软件的虚拟化运行环境,仿真速率和真实处理器达到基本一致,可满足硬件板卡接入下的时序要求,并提供指令执行过程及状态的监测手段。嵌入式目标处理器指令集虚拟仿真环境运行于通用的计算环境如Windows/Intel环境上,以下简称宿主机。
第二步、搭建嵌入式系统片上设备虚拟仿真环境
嵌入式系统片上设备仿真环境实现嵌入式系统各片上设备的寄存器接口模拟、存储空间模拟、设备功能仿真,建立嵌入式软件设备空间和宿主机虚拟运行空间的映射关系,保证在宿主机上模拟运行的嵌入式软件的接口关系不受影响、数据通信协议和接口不受改变。
第三步、宿主机中硬件板卡操作方法实现
完成硬件板卡在宿主机上的适配安装,实现宿主机虚拟环境下对板卡的操作与控制,包括板卡初始化、板卡打开、板卡通道设置、消息设置等。
第四步、建立外部设备模拟环境与宿主机的通信连接
实现外部设备模拟环境与宿主机硬件板卡的物理连接,建立外部设备模拟环境与硬件板卡的通信链路。
第五步、虚拟环境下外部设备模拟环境消息接收响应
实现虚拟环境下对外部设备模拟环境消息的获取,建立虚拟环境下的消息处理响应机制,能够将外部设备模拟环境发送的消息通过硬件板卡完整的反馈给虚拟运行环境。
第六步、虚拟环境下外部设备模拟环境状态更新机制实现
实现虚拟环境下对外部设备模拟环境消息的及时处理,建立虚拟环境下状态更新机制,能够将虚拟运行环境处理后的消息结果和消息状态通过硬件板卡准确的反馈给外部设备模拟环境,完成消息处理闭环响应。
本发明一种基于硬件板卡接入的软件虚拟化测试环境构建方法实施方案包含虚拟部分和实物部分两个半区,其中虚拟部分负责仿真被测程序的运行环境,运行在宿主机上,实物部分负责实现外部激励,运行在上位机上;引入板卡代理设备实现虚拟半区和实物半区的消息无差别传输,如图1所示,在虚拟半区,板卡代理设备具有和虚拟片上设备完全相同的接口,虚拟片上设备和板卡代理设备可以通过虚拟总线进行通信。在实物半区,板卡代理设备集成真实的物理设备板卡,通过物理总线与物理设备进行通信,进而实现虚拟半区和实物半区的消息无差别传输。
如图1,一种基于硬件板卡接入的软件虚拟化测试环境构建方法的另一实施例,具体实施步骤为:
第一步 搭建嵌入式目标处理器指令集虚拟运行环境
嵌入式目标处理器指令集虚拟运行环境采用虚拟化技术实现目标系统中嵌入式处理器的高精度高性能仿真。
(1)根据目标处理器的指令集描述说明对目标文件中的二进制指令代码进行取指、译码、翻译等操作,将运行于嵌入式目标环境的代码采用高级语言重新描述;
(2)采用动态二进制编译框架,在对重新描述过的目标代码执行过程中实现动态加速,将指令仿真速率提升至不低于真实处理器的水平,达到硬件板卡接入下的时序要求;
(3)在目标代码仿真执行过程中对指令的执行过程进行实时统计和监测,为后续的指令分析和测试验证采集数据。
第二步 搭建嵌入式系统片上设备虚拟仿真环境
分析嵌入式系统片上设备的组成,分析片上设备的功能特性和交互逻辑,实现嵌入式系统存储空间的模拟,针对每一个片上设备创建虚拟仿真模型,建立嵌入式软件设备空间和宿主机虚拟运行空间的映射关系;包括但不限于虚拟串口控制器、虚拟定时器、虚拟FLASH、虚拟AD、虚拟IO、虚拟1553B等。
虚拟串口控制器:通过虚拟运行方式实现串口收发和中断触发;
虚拟定时器:通过虚拟运行计数实现定时逻辑的模拟和中断触发;
虚拟FLASH:通过虚拟空间实现软件代码段、数据段存储和程序镜像加载;
虚拟AD:通过虚拟运行实现多通道AD采集及数据的归一化转换和处理;
虚拟IO:通过虚拟运行实现开关量、按键等IO模拟;
虚拟化1553B:通过虚拟运行实现1553B总线中的BU61580控制器逻辑基本功能,包括总线端口设置、总线类型选择,支持单消息、循环缓冲等多种控制方式,支持BC-RT、RT-BC、RT-RT、广播、方式字等多种消息模式,支持消息尾中断、循环缓冲中断等触发方式。
第三步 板卡代理设备实现
(1)板卡安装。将硬件板卡通过PCI插槽等接口形式安装在宿主机中并能够被正确识别;
(2)板卡驱动适配。在宿主机中实现或安装硬件板卡驱动,实现虚拟环境下的硬件板卡API调用与集成。
(3)板卡代理设备实物部分初始化。调用硬件板卡设备驱动程序API接口进行板卡代理设备实物部分初始化,完成硬件板卡工作模式、中断触发模式、消息通信模式设置。
(4)板卡代理设备消息缓冲区初始化。完成消息缓冲区大小、收发模式、消息监听模式设置。
(5)板卡代理设备虚拟部分的初始化,完成虚拟设备工作模式、虚拟总线的设置,挂载到虚拟运行环境相应内存地址上。
(6)异常处理。若初始化失败,则进行错误异常处理,重新进行代理设备初始化;若初始化成功,使能硬件板卡接收中断,将接收到的消息存储到消息缓冲区。
第四步 建立上位机与板卡代理设备的通信连接
根据总线类型,选择相应的总线连接方式,包括连接线、连接头、耦合器等,实现上位机物理设备接口与宿主机板卡代理设备的物理连接,建立上位机激励环境与虚拟运行环境的通信链路。
(1)绑定板卡通道ID。上位机与板卡代理设备实物部分通过耦合器进行连接;板卡代理设备获取板卡代理设备实物部分通道ID,作为与虚拟部分通道进行映射的标识。
(2)分配消息缓冲区。通道绑定后为每个通道分配消息缓冲区,消息缓冲区进行消息的暂存,防止消息丢失。
(3)消息格式转换。上位机消息通过物理通道发送到板卡代理设备实物部分,板卡代理设备实物部分与虚拟部分通过消息缓冲区进行数据交换,交换过程中实现格式的转换将消息传入到虚拟运行环境。
(4)分配监听线程。上位机与板卡代理设备通信链路建立起来后,为每个通信链路分配一个监听线程,记录通信数据和状态。
(5)映射虚拟总线设备通道。建立虚拟总线通道ID与板卡通道ID的映射关系,虚拟运行环境通过虚拟总线ID识别板卡代理设备并进行通信。
(6)使能时间同步。完成上述一系列步骤后,使能时间同步机制,在上位机与板卡代理设备通信过程中,根据虚拟运行环境运行速度进行时间同步,保证消息通信时序上的一致性。
第五步 虚拟环境下上位机激励环境的消息接收响应
半实物仿真环境下,上位机激励环境中的板卡消息实时发送给硬件目标机,硬件目标机接收消息后立即反馈消息的接收状态,继而响应消息的指令进行处理。在虚拟仿真环境下上位机激励环境发送的消息首先通过物理连接传递到宿主机中的板卡代理设备上,由板卡代理设备实现消息接收,继而由虚拟运行环境进行消息处理。
(1)监听消息缓冲区数据,如果缓冲区不为空则进行数据处理;为空则阻塞,等待捕获新的消息,新的消息捕获后通知数据处理线程进行数据处理。
(2)数据处理,捕获到新消息后,通过数据处理线程将代理板卡设备上收到消息进行格式转换,转换成对应的虚拟设备可识别的消息格式。
(2)响应发送请求,实现消息发送逻辑,将处理后消息发送给虚拟运行环境,根据返回状态判断消息传输成功与否。发送成功则获取新得数据进行发送;发送失败则重新发送当前消息,根据设置阈值多次失败后抛弃此消息并记录。
第六步 虚拟环境下上位机激励环境状态更新机制实现
实现虚拟环境下对上位机激励环境消息的及时处理,添加状态更新机制,能够将虚拟运行环境处理后的消息结果和消息状态通过硬件板卡准确的反馈给上位机物理设备,完成消息处理闭环响应。
(1)获取虚拟运行环境消息结果和消息状态。板卡代理设备在虚拟运行环境看来与虚拟设备无差别,可以通过虚拟设备总线接收到消息在虚拟环境中处理后反馈的结果和状态。
(2)分析处理消息结果与状态。板卡代理设备中数据处理线程将虚拟运行环境反馈的消息结果和状态进行处理,按照板卡代理设备实物板卡的数据格式进行封装。
(3)将反馈的消息结果与状态写入板卡。调用板卡代理设备实物板卡API,将封装后的消息结果和状态写入到板卡,继而与上位机通信时将结果和状态反馈到上位机。
本发明为保证代理设备的无差别接入,代理设备中实现了常用的虚拟设备的接口,通过虚拟总线完成对与之连接的虚拟设备的读写访问和消息传输。代理设备中实现了物理板卡的驱动程序,保证与真实物理设备的正常通信。
图2为代理设备结构图,如图2所示,本发明在保证了虚拟半区和半区的正常通信的前提下,需保证两个半区间的消息正确传输。虚拟半区访问实物半区时,代理设备的虚拟部分将所有与之连接的虚拟设备的所有消息接收,进行分发和处理,然后将处理完的消息交由实物半区进行重新组帧和分发,最终发送给与之连接的物理设备;反之,实物半区访问虚拟半区时,上位机激励通过真实的物理设备与代理设备进行通信,代理设备物理半区读取板卡中接收的消息,进行分发和处理,然后将消息传递给虚拟半区,虚拟半区处理后分发给相应的虚拟设备。
本发明为了保持数据传输过程中时序和状态的一致性,保证时序一致性的前提是虚拟半区实现超实时仿真,在虚拟半区保证超实时仿真的前提下,代理设备消息分发和处理模块通过多线程+缓冲池的方式实现不同总线上消息的完全接收和时序同步。
多线程处理实现不同设备与代理设备间并行通信,缓冲池实现虚拟部分与实物部分间的消息存储,虚拟部分和实物部分间消息传世过程中通过对时操作,完成时间同步,保证消息传输的时序一致性;实时的将虚拟部分的设备状态反馈到实物部分并从实物部分获取设备填充到虚拟部分,实现消息传输过程中设备状态的一致性。
图3为时序状态一致性处理示意图,如图3所示,
本发明的一种基于硬件板卡接入的软件虚拟化测试环境构建方法具有如下特点:
广泛采用仿真技术,从时间和空间上减少嵌入式软件异常处理验证过程对目标硬件环境的依赖;
可在保证嵌入式软件目标文件不受改动的情况下,采用非侵入式的方式实现嵌入式软件的异常处理验证;
可复用已有外部设备和激励模拟环境,具备灵活的异常激励注入和执行手段,可提升嵌入式软件异常处理验证的效率和充分性;
支持目标系统容错机制有效性验证,可提供嵌入式软件后续更改的参考依据。
本发明提供基于硬件板卡接入的软件虚拟化测试环境构建方法,解决当前半实物仿真测试环境下无法保障软件测试充分性的问题,并支持外部设备模拟环境复用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (4)
1.一种基于硬件板卡接入的软件虚拟化测试环境构建方法,其特征在于,包括:
第一步、搭建嵌入式目标处理器指令集虚拟仿真环境;
第二步、搭建嵌入式系统片上设备虚拟仿真环境;
第三步、完成硬件板卡在宿主机上的适配安装,实现宿主机虚拟环境下对板卡的操作与控制,包括板卡初始化、板卡打开、板卡通道设置以及消息设置;
第四步、建立外部设备模拟环境与宿主机硬件板卡的物理连接,建立外部设备模拟环境与硬件板卡的通信链路;
第五步、获取虚拟环境下对外部设备模拟环境消息,建立虚拟环境下的消息处理响应机制,将外部设备模拟环境发送的消息通过硬件板卡完整的反馈给虚拟运行环境;
第六步、处理虚拟环境下对外部设备模拟环境消息,建立虚拟环境下状态更新机制,将虚拟运行环境处理后的消息结果和消息状态通过硬件板卡准确的反馈给外部设备模拟环境,完成消息处理闭环响应;
其中,
第一步、搭建嵌入式目标处理器指令集虚拟运行环境,具体包括:
(1)根据目标处理器的指令集描述说明对目标文件中的二进制指令代码进行取指、译码以及翻译操作,将运行于嵌入式目标环境的代码采用高级语言重新描述;
(2)采用动态二进制编译框架,在对重新描述过的目标代码执行过程中实现动态加速,将指令仿真速率提升至不低于真实处理器的水平,达到硬件板卡接入下的时序要求;
(3)在目标代码仿真执行过程中对指令的执行过程进行实时统计和监测,为后续的指令分析和测试验证采集数据;
第二步、搭建嵌入式系统片上设备虚拟仿真环境,具体包括:
分析嵌入式系统片上设备的组成,分析片上设备的功能特性和交互逻辑,实现嵌入式系统存储空间的模拟,针对每一个片上设备创建虚拟仿真模型,建立嵌入式软件设备空间和宿主机虚拟运行空间的映射关系;
嵌入式软件设备空间和宿主机虚拟运行空间的映射关系包括;虚拟串口控制器、虚拟定时器、虚拟FLASH、虚拟AD、虚拟IO以及虚拟1553B;
虚拟串口控制器:通过虚拟运行方式实现串口收发和中断触发;
虚拟定时器:通过虚拟运行计数实现定时逻辑的模拟和中断触发;
虚拟FLASH:通过虚拟空间实现软件代码段、数据段存储和程序镜像加载;
虚拟AD:通过虚拟运行实现多通道AD采集及数据的归一化转换和处理;
虚拟IO:通过虚拟运行实现开关量、按键IO模拟;
虚拟化1553B:通过虚拟运行实现1553B总线中的BU61580控制器逻辑基本功能;
第四步中建立上位机与板卡代理设备的通信连接,具体包括:根据总线类型,选择相应的总线连接方式,进行上位机物理设备接口与宿主机板卡代理设备的物理连接,建立上位机激励环境与虚拟运行环境的通信链路;
(1)上位机与板卡代理设备实物部分通过耦合器进行连接;板卡代理设备获取板卡代理设备实物部分通道ID,作为与虚拟部分通道进行映射的标识;
(2)通道绑定后为每个通道分配消息缓冲区,消息缓冲区进行消息的暂存,防止消息丢失;
(3)上位机消息通过物理通道发送到板卡代理设备实物部分,板卡代理设备实物部分与虚拟部分通过消息缓冲区进行数据交换,交换过程中实现格式的转换将消息传入到虚拟运行环境;
(4)上位机与板卡代理设备通信链路建立起来后,为每个通信链路分配一个监听线程,记录通信数据和状态;
(5)建立虚拟总线通道ID与板卡通道ID的映射关系,虚拟运行环境通过虚拟总线ID识别板卡代理设备并进行通信;
(6)使能时间同步机制,在上位机与板卡代理设备通信过程中,根据虚拟运行环境运行速度进行时间同步,保证消息通信时序上的一致性;
第五步、虚拟环境下上位机激励环境的消息接收响应,具体包括:半实物仿真环境下,上位机激励环境中的板卡消息实时发送给硬件目标机,硬件目标机接收消息后立即反馈消息的接收状态,继而响应消息的指令进行处理,在虚拟仿真环境下上位机激励环境发送的消息首先通过物理连接传递到宿主机中的板卡代理设备上,由板卡代理设备实现消息接收,继而由虚拟运行环境进行消息处理;
第五步具体包括:
(1)监听消息缓冲区数据,如果缓冲区不为空则进行数据处理;为空则阻塞,等待捕获新的消息,新的消息捕获后通知数据处理线程进行数据处理;
(2)数据处理,捕获到新消息后,通过数据处理线程将代理板卡设备上收到消息进行格式转换,转换成对应的虚拟设备可识别的消息格式;
(3)响应发送请求,实现消息发送逻辑,将处理后消息发送给虚拟运行环境,根据返回状态判断消息传输成功与否;发送成功则获取新得数据进行发送;发送失败则重新发送当前消息,根据设置阈值多次失败后抛弃此消息并记录。
2.如权利要求1所述的基于硬件板卡接入的软件虚拟化测试环境构建方法,其特征在于,虚拟部分负责仿真被测程序的运行环境,运行在宿主机上,实物部分负责实现外部激励,运行在上位机上;引入板卡代理设备实现虚拟半区和实物半区的消息无差别传输,在虚拟半区,板卡代理设备具有和虚拟片上设备完全相同的接口,虚拟片上设备和板卡代理设备可以通过虚拟总线进行通信,在实物半区,板卡代理设备集成真实的物理设备板卡,通过物理总线与物理设备进行通信,进而实现虚拟半区和实物半区的消息无差别传输。
3.如权利要求1所述的基于硬件板卡接入的软件虚拟化测试环境构建方法,其特征在于,第三步中,板卡代理设备实现包括:
(1)将硬件板卡通过PCI插槽接口形式安装在宿主机中并能够被正确识别;
(2)在宿主机中实现或安装硬件板卡驱动,实现虚拟环境下的硬件板卡API调用与集成;
(3)调用硬件板卡设备驱动程序API接口进行板卡代理设备实物部分初始化,完成硬件板卡工作模式、中断触发模式、消息通信模式设置;
(4)板卡代理设备消息缓冲区初始化;
(5)板卡代理设备虚拟部分的初始化,完成虚拟设备工作模式以及虚拟总线的设置,挂载到虚拟运行环境相应内存地址上;
(6)异常处理:(1)到(5)存在失败,则进行错误异常处理,重新进行代理设备初始化;若初始化成功,使能硬件板卡接收中断,将接收到的消息存储到消息缓冲区。
4.如权利要求1所述的基于硬件板卡接入的软件虚拟化测试环境构建方法,其特征在于,第六步具体包括:
(1)获取虚拟运行环境消息结果和消息状态,通过虚拟设备总线接收到消息在虚拟环境中处理后反馈的结果和状态;
(2)分析处理消息结果与状态,板卡代理设备中数据处理线程将虚拟运行环境反馈的消息结果和状态进行处理,按照板卡代理设备实物板卡的数据格式进行封装;
(3)将反馈的消息结果与状态写入板卡,调用板卡代理设备实物板卡API,将封装后的消息结果和状态写入到板卡,继而与上位机通信时将结果和状态反馈到上位机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392719.6A CN112463614B (zh) | 2020-12-01 | 2020-12-01 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392719.6A CN112463614B (zh) | 2020-12-01 | 2020-12-01 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463614A CN112463614A (zh) | 2021-03-09 |
CN112463614B true CN112463614B (zh) | 2023-07-14 |
Family
ID=74806409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011392719.6A Active CN112463614B (zh) | 2020-12-01 | 2020-12-01 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463614B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535266B (zh) * | 2021-07-15 | 2023-03-14 | 上海高仙自动化科技发展有限公司 | 硬件设备适配方法、装置、芯片及电子设备 |
CN113704091B (zh) * | 2021-07-30 | 2024-02-09 | 郑州云海信息技术有限公司 | 一种逻辑代码调试方法、装置、设备及存储介质 |
CN113590166B (zh) * | 2021-08-02 | 2024-03-26 | 腾讯数码(深圳)有限公司 | 应用程序的更新方法、装置以及计算机可读存储介质 |
CN113868063B (zh) * | 2021-09-30 | 2024-05-14 | 中国电子科技集团公司第五十八研究所 | 多板卡多通道串口卡的验证方法及验证系统 |
CN115993570A (zh) * | 2021-10-18 | 2023-04-21 | 河南许继仪表有限公司 | 一种电能表软件功能的硬件虚拟加速测试方法及装置 |
CN114063472A (zh) * | 2021-11-18 | 2022-02-18 | 成都邦飞科技有限公司 | 一种数字化仿真设计系统、方法、存储介质及电子设备 |
CN115237739B (zh) * | 2022-09-23 | 2022-12-09 | 湖南云箭智能科技有限公司 | 板卡运行环境的分析方法、装置、设备及可读存储介质 |
CN115827168B (zh) * | 2023-02-01 | 2023-05-12 | 南京芯传汇电子科技有限公司 | 一种二进制仿真环境下虚拟机通信的优化方法 |
CN116909894B (zh) * | 2023-07-12 | 2024-04-05 | 北京计算机技术及应用研究所 | 一种虚实融合的混合动态测试平台设计方法 |
CN117077603B (zh) * | 2023-10-17 | 2024-02-02 | 北京开源芯片研究院 | 一种验证方法、芯片、系统、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN110879769A (zh) * | 2019-10-16 | 2020-03-13 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于动态可配置框架的嵌入式系统测试环境构建方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019940B (zh) * | 2012-12-26 | 2016-10-05 | 中国计量学院 | 一种电能表嵌入式软件半仿真测试装置 |
JP6523928B2 (ja) * | 2015-11-17 | 2019-06-05 | 株式会社東芝 | 仮想試験システム、仮想試験方法およびプログラム |
CN106326107B (zh) * | 2016-07-27 | 2019-03-08 | 北京计算机技术及应用研究所 | 基于仿真环境的非侵入式嵌入式软件异常处理验证方法 |
CN106445640B (zh) * | 2016-10-20 | 2019-06-18 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN107678946B (zh) * | 2017-09-12 | 2020-11-06 | 中航洛阳光电技术有限公司 | 一种基于模型的机载嵌入式软件测试环境构建方法 |
CN111427781B (zh) * | 2020-03-19 | 2023-07-21 | 北京广利核系统工程有限公司 | 一种兼容仿真和实体的逻辑功能测试方法及平台 |
-
2020
- 2020-12-01 CN CN202011392719.6A patent/CN112463614B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN110879769A (zh) * | 2019-10-16 | 2020-03-13 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于动态可配置框架的嵌入式系统测试环境构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112463614A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463614B (zh) | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 | |
CN109976925B (zh) | 一种基于混合多系统核间实时通信的方法和系统 | |
CN112416840B (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
US20170324609A1 (en) | Virtual Machine Fault Tolerance Method, Apparatus, and System | |
CN117785593B (zh) | 一种基于UVM的xHCI驱动的实现系统及方法 | |
US12034604B2 (en) | MQTT protocol simulation method and simulation device | |
CN114818599A (zh) | 芯片仿真验证系统 | |
CN114003445B (zh) | Bmc的i2c监控功能测试方法、系统、终端及存储介质 | |
CN110968352A (zh) | 一种pcie设备的复位系统及服务器系统 | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN101668036A (zh) | 分布式设备的模拟系统和模拟分布式设备处理业务的方法 | |
CN115827168A (zh) | 一种二进制仿真环境下虚拟机通信的优化方法 | |
CN111443994B (zh) | 一种包含模拟智能卡驱动程序的装置、系统及方法 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN116795752B (zh) | 接口通信方法、装置以及服务器 | |
CN116521324B (zh) | 中断虚拟化处理方法、装置及电子设备 | |
CN104734900A (zh) | 一种通信协议测试的发送控制方法 | |
CN112148537A (zh) | 总线监控装置及方法、存储介质、电子装置 | |
CN116611375A (zh) | 软硬件协同仿真平台及软硬件测试方法 | |
CN115981730A (zh) | 用于通过互连访问设备操作系统的系统、方法和设备 | |
CN116300780A (zh) | 零部件配置方法、装置、电子设备及存储介质 | |
CN111723032B (zh) | 一种中断管控方法及电子设备 | |
CN114430392A (zh) | 一种Intel网卡连接Switch拓展网口的方法与终端 | |
CN112579507A (zh) | 宿主机与bmc通信的方法、bios、操作系统、bmc和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |