CN107145379A - 实现具有数据信号连接关系虚拟设备组件的方法及系统 - Google Patents

实现具有数据信号连接关系虚拟设备组件的方法及系统 Download PDF

Info

Publication number
CN107145379A
CN107145379A CN201710150540.1A CN201710150540A CN107145379A CN 107145379 A CN107145379 A CN 107145379A CN 201710150540 A CN201710150540 A CN 201710150540A CN 107145379 A CN107145379 A CN 107145379A
Authority
CN
China
Prior art keywords
equipment
interface
apparatus assembly
data
virtual
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.)
Granted
Application number
CN201710150540.1A
Other languages
English (en)
Other versions
CN107145379B (zh
Inventor
吴翔虎
陶永超
曲明成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Academy of Aerospace Technology
Original Assignee
Shenzhen Academy of Aerospace Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Academy of Aerospace Technology filed Critical Shenzhen Academy of Aerospace Technology
Priority to CN201710150540.1A priority Critical patent/CN107145379B/zh
Publication of CN107145379A publication Critical patent/CN107145379A/zh
Application granted granted Critical
Publication of CN107145379B publication Critical patent/CN107145379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

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)
  • Exchange Systems With Centralized Control (AREA)

Abstract

本发明提供了一种实现具有数据信号连接关系虚拟设备组件的方法及系统,本发明的有益效果是:本发明可以广泛应用于航空、航天、武器装备、汽车、机器人、工业控制等嵌入式系统开发领域,提升这些行业的劳动生产效率、降低成本、增强产品的竞争能力。

Description

实现具有数据信号连接关系虚拟设备组件的方法及系统
技术领域
本发明涉及虚拟验证系统,尤其涉及实现具有数据信号连接关系虚拟设备组件的方法及系统。
背景技术
虚拟验证系统是能够对嵌入式硬件系统进行完整模拟的软件系统。用户可以在该系统上模拟运行嵌入式软件,无需相应的硬件即可对嵌入式软件进行测试与调试。通过使用本系统,用户不仅可以极大地缩短嵌入式软件研制周期,而且能够避免高昂的辅助测试硬件研制费用、极大地降低系统成本。
虚拟验证系统的一个核心特点是通用性,即系统可以根据测试所需硬件环境的不同,进行通用配置以满足需求,系统提供了两个组件库:1)虚拟处理器组件库;2)虚拟设备组件库。用户可以根据硬件需求,自主在组件库中选取虚拟组件,软定制板级硬件仿真环境。如图1所示,各虚拟设备组件组成设备组件库,供用户挑选、配置并最终生成虚拟验证平台实例。在虚拟设备组件库中,为了涵盖所有需仿真设备的特性,虚拟设备组件可分为4个类别:1)同步虚拟设备(如RAM/ROM、TIMER虚拟组件等);2)异步虚拟通信设备组件(如RS422、SJA-1000虚拟组件等);3)中断控制器组件;4)具有数据信号连接关系的虚拟设备组件(如GPIO、AD/DA虚拟组件等)。
上述每种组件均有其特定的虚拟仿真实现方法,每种组件对虚拟验证系统相关模块的依赖也不同。
发明内容
本发明提供了一种实现具有数据信号连接关系虚拟设备组件的方法,包括如下步骤:
所有间接面向处理器的间接连接设备在虚拟验证系统进行注册,并且间接连接设备向直接连接设备进行注册,将间接连接设备读写、驱动执行接口注册到直接连接设备的钩子链表中,中断获取接口不注册,然后:
当虚拟处理器读取直接连接设备时,直接连接设备首先要判断本次访问的对应的间接连接设备,之后在钩子链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到直接连接设备内部,完成数据更新;最后再真实的调用直接连接设备的读取操作,将有效数据返回至虚拟处理器;
当虚拟处理器写入直接连接设备时,首先要通过钩子函数将数据写入到间接连接设备中,完成数据更新,之后再更新直接连接设备的内部数据;
当虚拟处理器驱动直接连接设备执行时,同理首先要通过钩子函数驱动间接连接设备执行,之后再驱动自身的执行。
作为本发明的进一步改进,对于直接面向处理器的直接连接设备,执行如下步骤:
a.虚拟设备组件向虚拟验证系统进行设备注册;
b.如果注册成功,那么执行步骤c,如果未成功,则退出;
c.接受注册,初始化连接设备钩子函数列表;
d.设备组件内部初始化,等待接口驱动执行;
e.接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断步骤;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行步骤d;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;
中断信息判断步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤d,若不需要产生中断信息,那么返回执行步骤d。
作为本发明的进一步改进,在所述步骤a中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
作为本发明的进一步改进,对于间接面向处理器的间接连接设备,执行如下步骤:
A.虚拟设备组件向虚拟验证系统进行设备注册;
B.如果注册成功,那么执行步骤C,如果未成功,则退出;
C.将读写接口函数注册到连接设备上;
D.设备组件内部初始化,等待系统调用;
E.判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行步骤D,如果未被标记,那么返回执行步骤D,若不存在系统的接口调用,那么执行步骤F;
F.设备组件内部初始化,等待连接设备的驱动执行;
G.接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息步骤;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息步骤;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息步骤;
判断中断信息步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤D,若不需要产生中断信息,那么返回执行步骤D。
作为本发明的进一步改进,在所述步骤A中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
本发明还提供了一种实现具有数据信号连接关系虚拟设备组件的系统,包括:
所有间接面向处理器的间接连接设备在虚拟验证系统进行注册,并且间接连接设备向直接连接设备进行注册,将间接连接设备读写、驱动执行接口注册到直接连接设备的钩子链表中,中断获取接口不注册,然后:
当虚拟处理器读取直接连接设备时,直接连接设备首先要判断本次访问的对应的间接连接设备,之后在钩子链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到直接连接设备内部,完成数据更新;最后再真实的调用直接连接设备的读取操作,将有效数据返回至虚拟处理器;
当虚拟处理器写入直接连接设备时,首先要通过钩子函数将数据写入到间接连接设备中,完成数据更新,之后再更新直接连接设备的内部数据;
当虚拟处理器驱动直接连接设备执行时,同理首先要通过钩子函数驱动间接连接设备执行,之后再驱动自身的执行。
作为本发明的进一步改进,对于直接面向处理器的直接连接设备,包括:
第一处理模块,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理模块,如果注册成功,那么执行第三处理模块,如果未成功,则退出;
第三处理模块,接受注册,初始化连接设备钩子函数列表;
第四处理模块,设备组件内部初始化,等待接口驱动执行;
第五处理模块,接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断模块;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断模块;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断模块;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行第四处理模块;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;
中断信息判断模块包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理模块,若不需要产生中断信息,那么返回执行第四处理模块。
作为本发明的进一步改进,在所述第一处理模块中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
作为本发明的进一步改进,对于间接面向处理器的间接连接设备,包括:
第一处理单元,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理单元,如果注册成功,那么执行第三处理单元,如果未成功,则退出;
第三处理单元,将读写接口函数注册到连接设备上;
第四处理单元,设备组件内部初始化,等待系统调用;
第五处理单元,判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行第四处理单元,如果未被标记,那么返回执行第四处理单元,若不存在系统的接口调用,那么执行第六处理单元;
第六处理单元,设备组件内部初始化,等待连接设备的驱动执行;
第七处理单元,接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息单元;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息单元;
当连接设备组件通过接口SourceDriveFun()调用设备组件时,组件内部逻辑被驱动执行一次,根据执行结果同步更新内部所有数据,然后执行判断中断信息单元;
判断中断信息单元包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理单元,若不需要产生中断信息,那么返回执行第四处理单元。
作为本发明的进一步改进,在所述第一处理单元中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
本发明的有益效果是:本发明可以广泛应用于航空、航天、武器装备、汽车、机器人、工业控制等嵌入式系统开发领域,提升这些行业的劳动生产效率、降低成本、增强产品的竞争能力。
附图说明
图1是各类型组件组成的组件库。
图2是具有数据信号连接关系虚拟设备组件关系示例图。
图3是GPIO+AD574的读访问操作示意图。
图4是直接面向处理器的直接连接设备实现方法流程图。
图5是间接面向处理器的间接连接设备实现方法流程图。
具体实施方式
下面对本发明的技术内容进行详细介绍和说明:
一.具有数据信号连接关系虚拟设备组件的特征、系统交互与结构:
具有数据信号连接关系虚拟设备组件其最大的特征是在虚拟处理器组件对其进行数据访问操作时,设备组件并不能像同步/异步设备那样直接将数据返回,而是需要先与其他设备进行交互并更新内部数据之后,才能返回有效数据。而且,与其他设备的交互,是在虚拟处理器组件不可见的情况下发生。
例如GPIO(通用输入/输出接口)组件:真实的GPIO硬件只是数据输入输出接口,具体与之连接的设备是什么,处理器是不知道的,甚至连接的是中断信号还是数据信息处理器也无从得知。在虚拟验证系统,GPIO组件是很常用的设备组件,其与虚拟处理器之间的连接方式,类似于同步虚拟组件设备,由处理器组件直接驱动执行并进行数据访问交互,但是GPIO的数据源来自哪个设备,虚拟处理器组件就无从得知,更不可能进行驱动执行以及访问。
以GPIO+AD574(通用输入/输出接口+模数转换器)为例:处理器组件与GPIO组件直接相连接,驱动GPIO执行并访问GPIO数据;GPIO的每个虚拟管脚与AD的每个通道相连接,AD通过内部逻辑产生采集的数据值传递给GPIO相应的虚拟管脚。这时,虚拟处理器能够驱动并访问到GPIO组件,但是不可见AD组件。而当处理器组件访问GPIO时,GPIO返回的应当是由AD采集并转换的数据值。即虚拟处理器实质上是通过访问GPIO来访问AD处理后的数据,但是它只能驱动访问GPIO设备,而不可见AD设备。
这种情况,GPIO+AD即为具有数据信号连接关系虚拟设备组件。如下图2所示:
对于具有数据信号连接关系虚拟设备组件,它的实现方法与同步虚拟设备组件或者异步虚拟通信设备组件均不同。仍然以GPIO+AD574为例,当虚拟处理器访问GPIO相应管脚时,应首先通过一定的机制激励AD574的运行,由AD574更新内部数据,并将有效数据更新至GPIO相应的管脚,之后再由虚拟处理器对GPIO进行真实的访问操作。
上述机制可采用“预先访问钩子函数”的形式实现,即所有与GPIO相连接的设备(如上例中的AD574)在系统注册之后,还需要向GPIO设备注册,将其设备读写、驱动执行接口注册到GPIO的预先读写钩子链表中(中断获取接口不注册)。之后:
1)如图3所示,当虚拟处理器读取GPIO时,GPIO组件首先要判断本次访问的管脚对应哪种连接设备,之后在链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到GPIO组件内部,完成数据更新;最后再真实的调用GPIO组件的读取操作,将有效数据返回至虚拟处理器。
2)当虚拟处理器写入GPIO时,同理首先要通过钩子函数将数据写入到连接设备中,完成数据更新,之后再更新GPIO内部数据。
3)当虚拟处理器驱动GPIO执行时,同理首先要通过钩子函数驱动连接设备执行,之后再驱动自身的执行。
通过上述结构,即可完成具有数据信号连接关系虚拟设备组件之间的交互。由于虚拟验证系统对设备组件的约束,此类组件的接口函数与同步虚拟设备组件接口函数一致,如下表1所示:
表1具有数据信号连接关系虚拟设备组件的接口:
二.具有数据信号连接关系虚拟设备组件的实现方法:
介绍了具有数据信号连接关系虚拟设备组件之间的交互方式,这种方式主要是在虚拟验证系统整体约束下,采用钩子函数的方式,来完成设备组件的实现。在实现过程中,具有数据信号连接关系虚拟设备组件可分为两类:1)直接面向处理器的连接设备(如上例中的GPIO,称为直接连接设备);2)间接面向处理器的连接设备(如上例中的AD574,称为间接连接设备)。
如图4所示,直接面向处理器的直接连接设备的实现方法如下:
a.虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册;
b.如果注册成功,那么执行步骤c,如果未成功,则退出;
c.接受注册,初始化连接设备钩子函数列表;
d.设备组件内部初始化,等待接口驱动执行;
e.接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断步骤;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行步骤d;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;
中断信息判断步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤d,若不需要产生中断信息,那么返回执行步骤d。
综上,在所述步骤a至d中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册,如果注册成功则等待虚拟处理器组件通过相关接口进行调用,完成数据交互以及驱动执行,如果未成功,则退出;设备组件在初始化成功之后,会处于等待虚拟处理器调用状态,并不会有任何仿真逻辑执行。
当系统卸载设备组件或者系统退出时,设备组件同步退出。
如图5所示,间接面向处理器的间接连接设备的实现方法如下:
A.虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册;
B.如果注册成功,那么执行步骤C,如果未成功,则退出;
C.将读写接口函数注册到连接设备上;
D.设备组件内部初始化,等待系统调用;
E.判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行步骤D,如果未被标记,那么返回执行步骤D,若不存在系统的接口调用,那么执行步骤F;
F.设备组件内部初始化,等待连接设备的驱动执行;
G.接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息步骤;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息步骤;
当连接设备组件通过接口SourceDriveFun()调用设备组件时,组件内部逻辑被驱动执行一次,根据执行结果同步更新内部所有数据,然后执行判断中断信息步骤;
判断中断信息步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤D,若不需要产生中断信息,那么返回执行步骤D。
综上,在所述步骤A至D中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册,如果注册成功则等待虚拟处理器组件通过相关接口进行调用,完成数据交互以及驱动执行,如果未成功,则退出;在向系统注册成功之后,还需要将设备自身的读写接口、驱动执行接口注册到链接设备上;因为间接面向处理器的连接设备是没有地址空间的,其数据读写以及驱动智能靠连接设备完成,但是中断操作可以直接通过中断控制器完成,因此不需要向连接设备注册;设备组件在初始化成功之后,会处于等待虚拟处理器以及连接设备的调用状态,并不会有任何仿真逻辑执行。
当系统卸载设备组件或者系统退出时,设备组件同步退出。
本发明还公开了一种实现具有数据信号连接关系虚拟设备组件的系统,包括:
所有间接面向处理器的间接连接设备在虚拟验证系统进行注册,并且间接连接设备向直接连接设备进行注册,将间接连接设备读写、驱动执行接口注册到直接连接设备的钩子链表中,中断获取接口不注册,然后:
当虚拟处理器读取直接连接设备时,直接连接设备首先要判断本次访问的对应的间接连接设备,之后在钩子链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到直接连接设备内部,完成数据更新;最后再真实的调用直接连接设备的读取操作,将有效数据返回至虚拟处理器;
当虚拟处理器写入直接连接设备时,首先要通过钩子函数将数据写入到间接连接设备中,完成数据更新,之后再更新直接连接设备的内部数据;
当虚拟处理器驱动直接连接设备执行时,同理首先要通过钩子函数驱动间接连接设备执行,之后再驱动自身的执行。
对于直接面向处理器的直接连接设备,包括:
第一处理模块,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理模块,如果注册成功,那么执行第三处理模块,如果未成功,则退出;
第三处理模块,接受注册,初始化连接设备钩子函数列表;
第四处理模块,设备组件内部初始化,等待接口驱动执行;
第五处理模块,接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断模块;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断模块;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断模块;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行第四处理模块;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;
中断信息判断模块包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理模块,若不需要产生中断信息,那么返回执行第四处理模块。
在所述第一处理模块中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
对于间接面向处理器的间接连接设备,包括:
第一处理单元,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理单元,如果注册成功,那么执行第三处理单元,如果未成功,则退出;
第三处理单元,将读写接口函数注册到连接设备上;
第四处理单元,设备组件内部初始化,等待系统调用;
第五处理单元,判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行第四处理单元,如果未被标记,那么返回执行第四处理单元,若不存在系统的接口调用,那么执行第六处理单元;
第六处理单元,设备组件内部初始化,等待连接设备的驱动执行;
第七处理单元,接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息单元;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息单元;
当连接设备组件通过接口SourceDriveFun()调用设备组件时,组件内部逻辑被驱动执行一次,根据执行结果同步更新内部所有数据,然后执行判断中断信息单元;
判断中断信息单元包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理单元,若不需要产生中断信息,那么返回执行第四处理单元。
在所述第一处理单元中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
本发明可以广泛应用于航空、航天、武器装备、汽车、机器人、工业控制等嵌入式系统开发领域,提升这些行业的劳动生产效率、降低成本、增强产品的竞争能力。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种实现具有数据信号连接关系虚拟设备组件的方法,其特征在于,包括如下步骤:
所有间接面向处理器的间接连接设备在虚拟验证系统进行注册,并且间接连接设备向直接连接设备进行注册,将间接连接设备读写、驱动执行接口注册到直接连接设备的钩子链表中,中断获取接口不注册,然后:
当虚拟处理器读取直接连接设备时,直接连接设备首先要判断本次访问的对应的间接连接设备,之后在钩子链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到直接连接设备内部,完成数据更新;最后再真实的调用直接连接设备的读取操作,将有效数据返回至虚拟处理器;
当虚拟处理器写入直接连接设备时,首先要通过钩子函数将数据写入到间接连接设备中,完成数据更新,之后再更新直接连接设备的内部数据;
当虚拟处理器驱动直接连接设备执行时,同理首先要通过钩子函数驱动间接连接设备执行,之后再驱动自身的执行。
2.根据权利要求1所述的方法,其特征在于,对于直接面向处理器的直接连接设备,执行如下步骤:
a.虚拟设备组件向虚拟验证系统进行设备注册;
b.如果注册成功,那么执行步骤c,如果未成功,则退出;
c.接受注册,初始化连接设备钩子函数列表;
d.设备组件内部初始化,等待接口驱动执行;
e.接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断步骤;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断步骤;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行步骤d;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;
中断信息判断步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤d,若不需要产生中断信息,那么返回执行步骤d。
3.根据权利要求2所述的方法,其特征在于,在所述步骤a中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
4.根据权利要求1所述的方法,其特征在于,对于间接面向处理器的间接连接设备,执行如下步骤:
A.虚拟设备组件向虚拟验证系统进行设备注册;
B.如果注册成功,那么执行步骤C,如果未成功,则退出;
C.将读写接口函数注册到连接设备上;
D.设备组件内部初始化,等待系统调用;
E.判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行步骤D,如果未被标记,那么返回执行步骤D,若不存在系统的接口调用,那么执行步骤F;
F.设备组件内部初始化,等待连接设备的驱动执行;
G.接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息步骤;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息步骤;
当连接设备组件通过接口SourceDriveFun()调用设备组件时,组件内部逻辑被驱动执行一次,根据执行结果同步更新内部所有数据,然后执行判断中断信息步骤;
判断中断信息步骤包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行步骤D,若不需要产生中断信息,那么返回执行步骤D。
5.根据权利要求4所述的方法,其特征在于,在所述步骤A中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
6.一种实现具有数据信号连接关系虚拟设备组件的系统,其特征在于,包括:
所有间接面向处理器的间接连接设备在虚拟验证系统进行注册,并且间接连接设备向直接连接设备进行注册,将间接连接设备读写、驱动执行接口注册到直接连接设备的钩子链表中,中断获取接口不注册,然后:
当虚拟处理器读取直接连接设备时,直接连接设备首先要判断本次访问的对应的间接连接设备,之后在钩子链表中找到其预先设置的钩子函数,并根据需求调用它;之后将有效数据写入到直接连接设备内部,完成数据更新;最后再真实的调用直接连接设备的读取操作,将有效数据返回至虚拟处理器;
当虚拟处理器写入直接连接设备时,首先要通过钩子函数将数据写入到间接连接设备中,完成数据更新,之后再更新直接连接设备的内部数据;
当虚拟处理器驱动直接连接设备执行时,同理首先要通过钩子函数驱动间接连接设备执行,之后再驱动自身的执行。
7.根据权利要求6所述的系统,其特征在于,对于直接面向处理器的直接连接设备,包括:
第一处理模块,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理模块,如果注册成功,那么执行第三处理模块,如果未成功,则退出;
第三处理模块,接受注册,初始化连接设备钩子函数列表;
第四处理模块,设备组件内部初始化,等待接口驱动执行;
第五处理模块,接口被调用驱动执行,其中包括:
当虚拟处理器通过接口CompEDevReadW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的读操作钩子函数,完成数据更新获取有效数据,之后将设备本身的数据更新,之后再将有效数据提交,供虚拟处理器获取,然后执行中断信息判断模块;
当虚拟处理器通过接口CompEDevWriteW()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的写操作钩子函数,完成连接设备的数据更新,之后再完成自身设备的更新操作,然后执行中断信息判断模块;
当虚拟处理器通过接口SourceDriveFun()调用设备组件时,直接面向处理器的直接连接设备需要根据接口地址选择间接面向处理器的间接连接设备,并调用其预先注册的驱动操作钩子函数,完成连接设备的驱动执行,之后再完成自身设备的驱动操作,然后执行中断信息判断模块;
当虚拟处理器通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示,否则返回执行第四处理模块;在中断获取操作时,设备组件并没有查询与之相连接的设备,因为中断信号的连接是通过中断控制器独立直接进行的,不需要通过钩子函数的机制进行;中断信息判断模块包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理模块,若不需要产生中断信息,那么返回执行第四处理模块。
8.根据权利要求7所述的系统,其特征在于,在所述第一处理模块中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
9.根据权利要求6所述的系统,其特征在于,对于间接面向处理器的间接连接设备,包括:
第一处理单元,用于虚拟设备组件向虚拟验证系统进行设备注册;
第二处理单元,如果注册成功,那么执行第三处理单元,如果未成功,则退出;
第三处理单元,将读写接口函数注册到连接设备上;
第四处理单元,设备组件内部初始化,等待系统调用;
第五处理单元,判断是否存在系统的接口调用,若是,那么通过接口OutputHandle()调用设备组件时,组件需判断内部中断标示是否已被标记,如果被标记代表存在中断信息,则通过接口返回保存的中断信息,并清空中断标示然后返回执行第四处理单元,如果未被标记,那么返回执行第四处理单元,若不存在系统的接口调用,那么执行第六处理单元;
第六处理单元,设备组件内部初始化,等待连接设备的驱动执行;
第七处理单元,接口被调用驱动执行,其中包括:
当连接设备组件通过接口CompEDevReadW()调用设备组件时,设备组件需要根据接口地址读取内部数据,并且判断是否存在读数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,在将内部数据通过接口返回给连接设备组件的同时,执行判断中断信息单元;
当连接设备组件通过接口CompEDevWriteW()调用设备组件时,设备组件需要根据接口地址写入新数据,并且判断是否存在写数据引发的内部逻辑,若存在则执行逻辑,不存在则忽略,然后执行判断中断信息单元;
当连接设备组件通过接口SourceDriveFun()调用设备组件时,组件内部逻辑被驱动执行一次,根据执行结果同步更新内部所有数据,然后执行判断中断信息单元;
判断中断信息单元包括:根据硬件自有逻辑判断是否需要产生中断信息,若有则标记中断已产生并返回执行第四处理单元,若不需要产生中断信息,那么返回执行第四处理单元。
10.根据权利要求9所述的系统,其特征在于,在所述第一处理单元中,虚拟设备组件通过DevRegister()接口向虚拟验证系统进行设备注册。
CN201710150540.1A 2017-03-14 2017-03-14 实现具有数据信号连接关系虚拟设备组件的方法及系统 Active CN107145379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710150540.1A CN107145379B (zh) 2017-03-14 2017-03-14 实现具有数据信号连接关系虚拟设备组件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710150540.1A CN107145379B (zh) 2017-03-14 2017-03-14 实现具有数据信号连接关系虚拟设备组件的方法及系统

Publications (2)

Publication Number Publication Date
CN107145379A true CN107145379A (zh) 2017-09-08
CN107145379B CN107145379B (zh) 2020-10-02

Family

ID=59783813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710150540.1A Active CN107145379B (zh) 2017-03-14 2017-03-14 实现具有数据信号连接关系虚拟设备组件的方法及系统

Country Status (1)

Country Link
CN (1) CN107145379B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259478A (zh) * 2017-12-29 2018-07-06 中国电力科学研究院有限公司 基于工控终端设备接口hook的安全防护方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW440797B (en) * 1999-04-29 2001-06-16 Inst Information Industry Automatic test equipment with simulation test function and the test method thereof
CN1248116C (zh) * 2002-09-23 2006-03-29 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
WO2009003189A1 (en) * 2007-06-27 2008-12-31 Acresso Software, Inc. A method and system for software virtualization directly from an installation package
JP2009245380A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd ジョブ処理システムおよびジョブテスト方法
CN101957776B (zh) * 2010-09-08 2013-06-19 西安威锐达测控系统有限公司 现场可配置的手持式虚拟测试仪器系统及实现方法
CN103309724A (zh) * 2013-05-16 2013-09-18 中国电子科技集团公司第四十一研究所 一种基于自动测试系统软件适配器的虚拟通道通用管理方法
CN102750470B (zh) * 2012-05-22 2014-10-08 中国科学院计算技术研究所 全虚拟化环境下启动加载器的可信验证方法和系统
CN105824729A (zh) * 2016-03-11 2016-08-03 深圳航天科技创新研究院 一种具备通用性的虚拟验证平台及实现方法
CN102291274B (zh) * 2011-07-11 2016-09-21 北京天融信科技股份有限公司 一种实现网络测试仪表自动适配的系统及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW440797B (en) * 1999-04-29 2001-06-16 Inst Information Industry Automatic test equipment with simulation test function and the test method thereof
CN1248116C (zh) * 2002-09-23 2006-03-29 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
WO2009003189A1 (en) * 2007-06-27 2008-12-31 Acresso Software, Inc. A method and system for software virtualization directly from an installation package
JP2009245380A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd ジョブ処理システムおよびジョブテスト方法
CN101957776B (zh) * 2010-09-08 2013-06-19 西安威锐达测控系统有限公司 现场可配置的手持式虚拟测试仪器系统及实现方法
CN102291274B (zh) * 2011-07-11 2016-09-21 北京天融信科技股份有限公司 一种实现网络测试仪表自动适配的系统及方法
CN102750470B (zh) * 2012-05-22 2014-10-08 中国科学院计算技术研究所 全虚拟化环境下启动加载器的可信验证方法和系统
CN103309724A (zh) * 2013-05-16 2013-09-18 中国电子科技集团公司第四十一研究所 一种基于自动测试系统软件适配器的虚拟通道通用管理方法
CN105824729A (zh) * 2016-03-11 2016-08-03 深圳航天科技创新研究院 一种具备通用性的虚拟验证平台及实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姜春茂,等;: "一个基于消息传递接口和面向对象的图像信号处理并行向量库", 《计算机应用研究》 *
王宁,: "渔船总体设计方案虚拟验证", 《中国优秀硕士学位论文全文数据库工程科技II辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259478A (zh) * 2017-12-29 2018-07-06 中国电力科学研究院有限公司 基于工控终端设备接口hook的安全防护方法
CN108259478B (zh) * 2017-12-29 2021-10-01 中国电力科学研究院有限公司 基于工控终端设备接口hook的安全防护方法

Also Published As

Publication number Publication date
CN107145379B (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
US20130211812A1 (en) Conveying data from a hardware device to a circuit simulation
EP1796317A3 (en) Storage area network system construction aid apparatus, same system construction aid method and same system construction aid program
CN106155766A (zh) 一种虚拟串口屏模拟系统及其模拟方法
CN109101228A (zh) 应用程序的执行方法和装置
JP6263919B2 (ja) 情報表示制御装置、情報表示制御方法及び情報表示制御プログラム
JP2020071870A (ja) ハードウェア抽象化ソフトウェアレイヤを使用するシステムのための汎用仮想化プラットフォーム
CN103324515A (zh) 仿真期间存储器步移序列加速的方法和系统
CN107145379A (zh) 实现具有数据信号连接关系虚拟设备组件的方法及系统
US20080262821A1 (en) Method, apparatus, and computer program product for dynamically managing simulated addresses
CN106959931A (zh) 实现中断控制器组件的方法及系统
US20030093258A1 (en) Method and apparatus for efficient simulation of memory mapped device access
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的系统
CN106648367A (zh) 一种点读方法和点读装置
CN111930628B (zh) 一种安全级显示模块图形组态仿真系统及其仿真方法
CN109241073A (zh) 一种让人工智能机器人具有人类情感的方法
CN110147307B (zh) 一种嵌入式系统仿真ram、rom结果对比系统
CN106020800A (zh) 一种基于数据库的模拟训练设备操作逻辑建模与驱动方法
CN107133082A (zh) 实现同步虚拟设备组件的方法及系统
JPS6053331B2 (ja) 計算機システム
CN107678718A (zh) 不同分辨率显示屏的兼容处理方法、移动终端及存储介质
TW576999B (en) Flexible system simulation structure and interface thereof
Toral et al. Interactive multimedia teaching of digital signal processors
CN115098998B (zh) 一种基于仿真数据的模型训练方法和系统
JPH07219980A (ja) テスト実行方式
Otero et al. MiniOS: an instructional platform for teaching operating systems labs

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