CN115576807B - 虚拟ecu实现方法、装置、电子设备及存储介质 - Google Patents

虚拟ecu实现方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115576807B
CN115576807B CN202211193904.1A CN202211193904A CN115576807B CN 115576807 B CN115576807 B CN 115576807B CN 202211193904 A CN202211193904 A CN 202211193904A CN 115576807 B CN115576807 B CN 115576807B
Authority
CN
China
Prior art keywords
virtual
pin
memory
instruction
callback function
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
Application number
CN202211193904.1A
Other languages
English (en)
Other versions
CN115576807A (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.)
Guoke Chushi Chongqing Software Co ltd
Original Assignee
Guoke Chushi Chongqing Software Co ltd
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 Guoke Chushi Chongqing Software Co ltd filed Critical Guoke Chushi Chongqing Software Co ltd
Priority to CN202211193904.1A priority Critical patent/CN115576807B/zh
Publication of CN115576807A publication Critical patent/CN115576807A/zh
Application granted granted Critical
Publication of CN115576807B publication Critical patent/CN115576807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本公开涉及软件开发技术领域。虚拟ECU实现方法包括构建虚拟CPU线程,虚拟CPU线程能够调用虚拟CPU对应的指令集中的指令,并执行对应的指令操作;构建虚拟I/O设备,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚至少对应有回调函数;构建虚拟内存,虚拟内存中存储有与虚拟CPU对应的指令集;虚拟内存中还设有I/O访问地址;I/O访问地址中包括与虚拟引脚一一对应的引脚访问地址;设置内存监听线程,用于监听引脚访问地址被访问,并执行对应的虚拟引脚的操作。本公开一种虚拟ECU实现方法,实现了对设备引脚的虚拟化,避免引脚的复用,明确的仿照出真实芯片设备的物理连接,在软件测试失效的情况下,仅需要考虑设备之间的问题即可,提高了测试效率。

Description

虚拟ECU实现方法、装置、电子设备及存储介质
技术领域
本公开涉及汽车软件开发技术领域,尤其涉及一种虚拟ECU实现方法、装置、电子设备及存储介质。
背景技术
相关技术中,ECU(Electronic Control Unit)电子控制单元,又称“行车电脑”、“车载电脑”等。从用途上讲则是汽车专用微机控制器,也叫汽车专用单片机,在相关领域被广泛的使用。对于其相关的软件开发时,往往需要在实体硬件ECU上测试。
相对于实体硬件ECU的测试来说,需要耗时的搭建硬件环境,并且,在软件开发的测试过程中如果出现软件失效,首先会考虑线束或硬件通信上是否出现了问题,进而排查线束或硬件,导致成本和测试效率都不高,无法进行高效的并行开发测试,开发和测试也是比较割裂的,不是流水线处理的。
有鉴于此,亟需一种需要虚拟化的ECU,来提高软件的开发和测试效率。
发明内容
为克服相关技术中存在的问题,本公开提供一种虚拟ECU实现方法、装置、电子设备及存储介质,旨在解决相关技术中存在的问题。
根据本公开实施例的第一方面,提供一种虚拟ECU实现方法,包括:
构建虚拟CPU线程,虚拟CPU线程能够调用虚拟CPU对应的指令集中的指令,并执行对应的指令操作;
构建虚拟I/O设备,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚至少对应有回调函数;
构建虚拟内存,虚拟内存中存储有与虚拟CPU对应的指令集;虚拟内存中还设有I/O访问地址;I/O访问地址中包括与虚拟引脚一一对应的引脚访问地址;
设置内存监听线程,用于监听引脚访问地址被访问,并执行对应的虚拟引脚的操作。
根据本公开实施例的第二方面,提供一种虚拟ECU实现装置,包括:
第一虚拟化模块,用于构建虚拟CPU线程,虚拟CPU线程能够调用虚拟CPU对应的指令集中的指令,并执行对应的指令操作;
第二虚拟化模块,用于构建虚拟I/O设备,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚至少对应有回调函数;
第三虚拟化模块,用于构建虚拟内存,虚拟内存中存储有与虚拟CPU对应的指令集;虚拟内存中还设有I/O访问地址;I/O访问地址中包括与虚拟引脚一一对应的引脚访问地址;
第四虚拟化模块,用于设置内存监听线程,用于监听引脚访问地址被访问,并执行对应的虚拟引脚的操作。根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
处理器,用于从存储器中读取可执行指令,并执行指令以实现本公开第一方面所提供的虚拟ECU实现方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时,以实现本公开第一方面所提供的虚拟ECU实现方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
分别构建CPU线程、I/O设备和虚拟内存,并在构建虚拟I/O设备时,构建具有回调函数的虚拟引脚,该虚拟引脚具有与引脚一一对应的访问地址,以便虚拟引脚,进行信号传输,此外,为了使得虚拟引脚实现引脚的不同信号传输,还设置内存监听线程,用以监听引脚访问地址被访问,执行对应的虚拟引脚的操作。实现了对设备引脚的虚拟化,避免引脚的复用,明确的仿照出真实芯片设备的物理连接,在出现软件测试失败效的情况下,仅需要考虑设备之间的问题即可,提高了软件的开发和测试效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种虚拟ECU实现方法的流程图。
图2是根据一示例性实施例示出的一种虚拟ECU实现方法的虚拟CPU线程的寄存器构建方法的流程图。
图3是根据一示例性实施例示出的一种虚拟ECU实现方法的虚拟CPU线程的创建示意图。
图4是根据一示例性实施例示出的一种虚拟ECU实现方法的模拟设备与总线之间的连接关系示意图。
图5是根据一示例性实施例示出的一种虚拟ECU实现方法的内存监听线程执行对应的构建虚拟I/O设备的流程图。
图6是根据一示例性实施例示出的一种虚拟ECU实现方法的引脚访问地址被访问的流程图。
图7是根据一示例性实施例示出的一种虚拟ECU实现装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
下面将结合附图详细地对示例性实施例进行描述说明。
应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。
应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。
应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。
应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,A和/或B,至少可以表示:单独存在A,同时存在A和B,单独存在B这三种关联关系。
应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
技术用语说明
Tricore指令,是实时嵌入式系统而优化的统一的、32位的微控制器-DSP(DigitalSignal Processing)处理器架构,即指令集体系结构。
EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,CS,DS,ES,FS,GS和SS,为X86 汇编语言中CPU上的通用寄存器的名称。
ADD,为Intel x86平台的汇编加法指令。
Soc,为系统级芯片,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
MMIO,为Memory-mapped I/O,即内存映射I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。
CAN ,为Controller Area Network,控制器域网,CAN总线是一种应用广泛的现场总线,在工业测控和工业自动化等领域有很大的应用前景。
示例性方法
图1是根据一示例性实施例示出的一种虚拟ECU实现方法的流程图,如图1所示,虚拟ECU实现方法用于工业设备测试中,包括以下步骤:
在步骤S110中,构建虚拟CPU线程,虚拟CPU线程能够调用虚拟CPU对应的指令集中的指令,并执行对应的指令操作。
其中,虚拟CPU即vcpu,可以理解为虚拟CPU线程的集合体,也就是说,每个虚拟CPU至少由一个虚拟CPU线程构成,当新建一个虚拟CPU的时候,就相当于建一个虚拟CPU线程,利用虚拟CPU线程来运行程序。
虚拟CPU线程能够调用虚拟内存中预设的指令集中的指令,并且执行对应的指令操作。
具体地,指令集中的指令可包含操作码与操作数。虚拟CPU线程调用指令集的指令后,取出指令中的操作码,并翻译操作码,目的在于翻译成当前平台运行环境可以理解的指令,这样,当前平台即可执行翻译后的指令。例如,模拟的ECU为tc397,运行环境为x86环境,则需要将tc397的tricore指令翻译成x86平台能够理解的指令集,从而达到模拟tricore指令的目的。
需要说明地是,由于引脚的属性可以被定义赋值,因此,虚拟引脚除了标准的X86架构&arm架构外,适用于tricore的非标虚拟ECU的场景,应用广泛。
在步骤S120中,构建虚拟I/O设备,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚至少对应有回调函数。
可以理解地是,相关的虚拟硬件连接关系中,是将设备(设备指测试的汽车中的部件或组件等)虚拟化,然后,设备与VCPU进行连接,以便实现相关的测试,设备与VCPU间的连接关系是通过函数调用以及嵌套调用的方式来实现的,该种连接方式会发生一个引脚被多个设备复用的情况,因此,函数调用以及嵌套调用能够体现测试结构,但并不能很好的体现设备间的连接关系,其次,此种方式并不利于通过设备快速构建新的soc,设备的耦合性较高,无法明确的仿照真实芯片与设备的物理连接。
虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚具有其自身属性,例如虚拟引脚至少对应有回调函数,利用虚拟引脚与虚拟引脚之间的连接,构成对应关系,当两个虚拟引脚构成连接关系的情况下,其中一个虚拟引脚被访问的情况下,另一个虚拟引脚可以利用回调函数,确定要执行的动作。具有回调函数的虚拟引脚拥有了自身的属性,当两个虚拟引脚形成连接的关系时,即可明确的示出真实芯片与设备的物理连接关系。
基于上述原因,本公开通过构建具有属性的虚拟引脚,利用虚拟引脚与虚拟引脚之间的连接,在软件测试失效的情况下,仅需判断设备的逻辑关系即可,无需考虑线束或硬件通信上是否出现了问题,提高了测试效率,并且可以高效的完成测试任务。
在步骤S130中,构建虚拟内存,虚拟内存中存储有与CPU对应的指令集;虚拟内存中还设有I/O访问地址;I/O访问地址中包括与虚拟引脚一一对应的引脚访问地址。
其中,构建的虚拟内存可分为系统内存与I/O内存,I/O内存为模拟设备映射的内存地址,即I/O访问地址,I/O访问地址中的虚拟引脚访问地址与真实引脚一一对应,以便形成仿照真实芯片设备的物理连接。操作I/O访问地址,相当于给模拟设备下发命令或从模拟设备接收数据。
此外,虚拟内存中的系统内存中还存储有与虚拟CPU对应的指令集,该虚拟CPU指令集,能够被虚拟CPU线程调用。
在步骤S140中,设置内存监听线程,用于监听引脚访问地址被访问,并执行对应的虚拟引脚的操作。
其中,内存监听线程,建立了引脚访问地址与虚拟引脚操作的依赖关系,或者成为对应关系,当引脚访问地址发生改变时,将自动通知与其形成对应关系的虚拟引脚作出操作的动作。
本实施例中,利用内存监听线程可以及时获知被访问的引脚访问地址,从而执行对应的虚拟引脚操作,并且还可以利用监听线程追溯虚拟银奖的操作是由那个引脚访问地址触发的,在软件测试失效的情况下,可以进一步地,提高查找导致测试失效的源头,提高软件测试效率。
如图2所示,在一个实施例中,构建虚拟CPU线程包括以下步骤:
在步骤S210中,在虚拟内存中构建寄存器。
其中,在虚拟内存中分配一块静态全局变量的内存,用于代表寄存器,具体地,寄存器包括EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,CS,DS,ES,FS,GS和SS。
在步骤S220中,虚拟CPU线程调用指令集中的指令,对指令进行解析,并对应操作,将操作的结果存储在寄存器内。
其中,指令集包括算数运算、逻辑运算和取址运算等操作码,例如,算数运算的操作指令集 ADD。
对指令集中的指令进行解析操作,为解码指令中的操作码,并翻译操作码中的函数。示例性地,在x86架构下通过如下方式实现指令的操作:
获取操作码,如前述的ADD;
获取操作数,如前述说的全局变量寄存器中的值;
执行ADD操作,将操作结果存入寄存器。
如图3所示,本实施例中,虚拟CPU由至少一条虚拟CPU线程构成,虚拟CPU线程的执行方式是从虚拟内存中的指令集读取指令,根据读取的指令进行解析,再翻译,最后执行,从而实现虚拟CPU线程的指令操作,利用虚拟CPU线程实现了虚拟CPU的计算操作。
在一个实施例中,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚用于构成模拟设备之间的连接。虚拟引脚至少对应有回调函数,以使虚拟引脚具有实现真实引脚(真实引脚为实体,非虚拟的引脚)的作用,从而实现模拟设备之间的信号传递,需要注意的是,本公开中虚拟引脚与真实引脚一一对应。
需要说明地是,任一虚拟引脚至少对应有引脚ID、引脚电平信息和引脚连接关系,其中,
引脚ID,用于表示虚拟引脚的标识信息,引脚ID作为虚拟引脚的识别信息,使得虚拟引脚具有唯一性,即每一个虚拟引脚具有唯一的固定的属性;
引脚电平信息,用于表示虚拟引脚的电平状态信息,并与虚拟引脚的回调函数相对应,电平状态信息为虚拟引脚电平,例如,虚拟引脚的电平状态信息可以包括高电平状态和低电平状态,回调函数至少包括第一回调函数和第二回调函数,其中,高电平状态对应于第一回调函数;低电平状态对应于第二回调函数。以便相应的虚拟引脚电平触发时,具有相对应的回调函数被执行。
引脚连接关系,用于表示相连的两个虚拟引脚的连接关系,两个虚拟引脚的连接关系,代表了设备之间物理连接的逻辑关系。
示例性地,前述模拟设备之间的连接可以包括模拟设备与总线之间的连接,以及模拟总线与虚拟CPU之间的连接。
如图4所示,1、模拟设备与总线之间的多个模拟设备为总线的成员,多个模拟设备通过虚拟引脚连接到总线上,利用虚拟引脚的属性关系体现模拟设备连接的逻辑关系,进而体现出仿照真实芯片设备的物理连接。
例如,模拟设备的gpio引脚.outbound = 总线的gpio引脚.inbound (代表了真实的物理连接),同时也是模拟设备信号的传递。
模拟设备的输出引脚:
模拟设备【“属性名字”】 = gpio引脚结构体.outbound;
总线【“属性名字”】 = gpio引脚结构体.inbound;
其中,gpio引脚结构体.inbound (引脚电平,电平触发的回调函数)。
2、模拟总线与虚拟CPU之间通过虚拟引脚进行连接,同样利用虚拟引脚的属性关系体现模拟总线与虚拟CPU之间的逻辑关系,示例可参考模拟设备与总线之间虚拟引脚的示例,此处不在赘述。
本实施例中,虚拟引脚与虚拟引脚的连接即可实现模拟设备之间的连接关系,并且能够明确设备的物理连接。
此外,可以根据汽车测试的内容,将所需的模拟设备模块化,利用虚拟引脚的属性特点,将虚拟引脚作为各个模块的连接点,通过拖拽模块的方式进行组合形成新的soc芯片。使得soc芯片的搭建可视化,简单化,降低了soc芯片的构建难度。
在一个实施例中,构建虚拟I/O设备还包括以下步骤:
如图5所示,在步骤S310中,为虚拟I/O设备分配内存地址,并在内存地址中赋予虚拟引脚对应的回调函数。
其中,内存地址对应有虚拟引脚的回调函数,若回调函数至少包括第一回调函数和第二回调函数的情况下,分别有相应的内存地址与第一回调函数和第二回调函数对应,以便实现内存地址被访问时,有相应的回调函数被操作。
本实施例中,通过为虚拟I/O设备分配内存地址,并在内存地址中赋予虚拟引脚对应的回调函数。使得每个虚拟引脚的内存地址被访问时,均有相应的回调函数。执行虚拟引脚的操作,即可模仿设备之间的物理连接。
在一个实施例中,设置内存监听线程,用于监听引脚访问地址被访问包括以下步骤:
如图6所示,在步骤S410中,内存监听线程监听到第一虚拟引脚对应的访问地址被访问。
其中,访问地址为I/O内存中的I/O访问地址。
在步骤S420中,基于第一虚拟引脚与第二虚拟引脚连接关系,内存监听线程执行第二虚拟引脚对应的回调函数。
其中,第一虚拟引脚和第二虚拟引脚表示两个虚拟引脚。
内存监听线程监听第一虚拟引脚,当第一虚拟引脚的访问地址被访问,内存监听线程会自动启动,亦可以理解为,监听程序响应于第一虚拟引脚的访问地址被访问。内存监听线程根据监听到的结果执行与第一虚拟引脚形成连接关系的第二虚拟引脚对应的回调函数。
在步骤S430中,根据第二虚拟引脚的回调函数,启动虚拟CPU线程。
其中,虚拟CPU线程用于执行第二虚拟引脚的回调函数对应的操作,以便虚拟CPU线程通过第二虚拟引脚的回调函数确定指令集中的指令。一个虚拟CPU线程可以对应多个回调函数,当两个虚拟I/O设备的虚拟引脚被执行时,可以自动切换到其他虚拟CPU线程执行,从而避免当前虚拟CPU线程等待,能最大化虚拟CPU线程的执行效率。
需要说明地是,内存监听线程还可以预设引脚访问地址被访问的次数及时间间隔等阈值,在阈值范围内可认定访问正常,当超出预设的阈值的情况下内存监听线程可以将监听的结果反馈到上位机,以便上位机及时获知第一虚拟引脚或第二虚拟引脚的工作状态。
在步骤S440中,基于虚拟CPU线程调用指令集中对应的指令,并执行。
示例性地,以键盘为例,在键盘的输出引脚(即第一虚拟引脚)连接到中断控制器的键盘输入引脚(即第二虚拟引脚),当键盘按下的时候,向键盘映射的内存地址(即I/O内存中的I/O访问地址)处写一个数值,会在键盘的引脚处拉高电平(即内存监听线程监听到键盘的引脚动作),这里通过函数来模拟电平拉高的操作,从而导致中断控制器对应的引脚发生变化(即内存监听线程执行第二虚拟引脚对应的回调函数),从而调用对应的函数(即第二虚拟引脚的回调函数,启动虚拟CPU线程,虚拟CPU线程调用指令集中对应的指令,并执行)。
在一个实施例中,虚拟ECU实现方法还包括:构建模拟设备,模拟设备包括与其相对应的至少一个虚拟引脚。
其中,模拟设备具有至少一个需要执行的动作指令,动作指令表示模拟设备在虚拟ECU中需要进行的测试动作,动作指令对应的至少一个虚拟引脚,即该虚拟引脚具有执行该动作指令的属性。
综上所述,本公开一种虚拟ECU实现方法,分别构建CPU线程、I/O设备和虚拟内存,并在构建虚拟I/O设备时,构建至少对应有引脚ID、引脚电平信息和引脚连接关系虚拟引脚,使得该虚拟引脚具有固有属性,并与真实的引脚一一对应。在两个虚拟引脚连接时,可以明确的仿照出真实芯片设备的物理连接,不仅实现了对设备引脚的虚拟化,避免引脚的复用,还能够将所需的设备模块化,将虚拟引脚作为各个模块的连接点,通过拖拽模块的方式进行组合,形成新的芯片,使得芯片的搭接可视化和简单化。
示例性装置
图7是根据一示例性实施例示出的一种虚拟ECU实现装置框图。该虚拟ECU实现装置200包括第一虚拟化模块210,第二虚拟化模块220、第三虚拟化模块230和第四虚拟化模块240。
该第一虚拟化模块210,用于构建虚拟CPU线程,虚拟CPU线程能够调用虚拟CPU对应的指令集中的指令,并执行对应的指令操作。
该第二虚拟化模块220,用于构建虚拟I/O设备,虚拟I/O设备包括至少一个虚拟引脚,虚拟引脚至少对应有回调函数。
该第三虚拟化模块230,用于虚拟内存中存储有与虚拟CPU对应的指令集;虚拟内存中还设有I/O访问地址;I/O访问地址中包括与虚拟引脚一一对应的引脚访问地址。
该第四虚拟化模块240,用于设置内存监听线程,用于监听引脚访问地址被访问,并执行对应的虚拟引脚的操作。
可选的,第一虚拟化模块210具体用于:在虚拟内存中构建寄存器;虚拟CPU线程调用指令集中的指令,对指令进行解析,并对应操作,将操作的结果存储在寄存器内。
可选的,第二虚拟化模块220包括:虚拟引脚配置单元,虚拟引脚配置单元具体用于:任一虚拟引脚至少对应有引脚ID、引脚电平信息和引脚连接关系,其中,引脚ID,用于表示虚拟引脚的标识信息;引脚电平信息,用于表示虚拟引脚的电平状态信息,并与虚拟引脚的回调函数相对应;引脚连接关系,用于表示相连的两个虚拟引脚的连接关系。
可选的,虚拟引脚配置单元具体用于:引脚电平信息包括高电平状态和低电平状态;回调函数至少包括第一回调函数和第二回调函数,其中,高电平状态,对应于第一回调函数;低电平状态,对应于第二回调函数。
可选的,第四虚拟化模块240具体用于:内存监听线程监听到第一虚拟引脚对应的访问地址被访问;基于第一虚拟引脚与第二虚拟引脚连接关系,内存监听线程执行第二虚拟引脚对应的回调函数;根据第二虚拟引脚的回调函数,启动虚拟CPU线程;基于虚拟CPU线程调用指令集中对应的指令,并执行。
可选的,第二虚拟化模块具220体用于:为虚拟I/O设备分配内存地址,并在内存地址中赋予虚拟引脚对应的回调函数。
可选的,还包括第五虚拟化模块250,所述第五虚拟化模块250具体用于:构建模拟设备,模拟设备包括与其相对应的至少一个虚拟引脚。
关于虚拟ECU实现装置200的具体限定可以参见上文中对于虚拟ECU实现方法的限定,在此不再赘述。上述虚拟ECU实现装置200中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。
示例性电子设备
图8是根据一示例性实施例示出的一种电子设备900的框图。该设备900可以是车辆控制器、车载终端、车载计算机或者其他类型的电子设备。
参照图8,电子设备900可包括至少一个处理器910和存储器920。处理器910可以执行存储在存储器920中的指令。处理器910通过数据总线与存储器920通信连接。除存储器920外,处理器910还可通过数据总线与输入设备930、输出设备940、通信设备950通信连接。
处理器910可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。
存储器920可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本公开实施例中,存储器920中存储有可执行指令,处理器910可以从存储器920中读取可执行指令,并执行指令以实现上述示例性实施例中任一的虚拟ECU实现方法的全部或部分步骤。
示例性计算机可读存储介质
除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的全部或部分步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种虚拟ECU实现方法,其特征在于,包括:
构建虚拟CPU线程,所述虚拟CPU线程能够调用所述虚拟CPU对应的指令集中的指令,并执行对应的指令操作;
构建虚拟I/O设备,所述虚拟I/O设备包括至少一个虚拟引脚,所述虚拟引脚至少对应有回调函数;
构建虚拟内存,所述虚拟内存中存储有与所述虚拟CPU对应的指令集;所述虚拟内存中还设有I/O访问地址;所述I/O访问地址中包括与所述虚拟引脚一一对应的引脚访问地址;
设置内存监听线程,用于监听所述引脚访问地址被访问,并执行对应的所述虚拟引脚的操作;其中,
所述设置内存监听线程,用于监听所述引脚访问地址被访问,包括:
所述内存监听线程监听到第一虚拟引脚对应的访问地址被访问;
基于所述第一虚拟引脚与第二虚拟引脚连接关系,所述内存监听线程执行所述第二虚拟引脚对应的回调函数;
根据所述第二虚拟引脚的回调函数,启动所述虚拟CPU线程;
基于所述虚拟CPU线程调用所述指令集中对应的指令,并执行;
构建模拟设备,所述模拟设备包括与其相对应的至少一个所述虚拟引脚;
任一所述虚拟引脚至少对应有引脚ID、引脚电平信息和引脚连接关系,其中,
所述引脚ID,用于表示所述虚拟引脚的标识信息;
所述引脚电平信息,用于表示所述虚拟引脚的电平状态信息,并与所述虚拟引脚的所述回调函数相对应;
所述引脚连接关系,用于表示相连的两个所述虚拟引脚的连接关系。
2.根据权利要求1所述的方法,其特征在于,
所述构建虚拟CPU线程,包括:
在所述虚拟内存中构建寄存器;
所述虚拟CPU线程调用所述指令集中的指令,对所述指令进行解析,并对应操作,将所述操作的结果存储在所述寄存器内。
3.根据权利要求1所述的方法,其特征在于,所述引脚电平信息包括高电平状态和低电平状态;所述回调函数至少包括第一回调函数和第二回调函数,其中,
所述高电平状态,对应于所述第一回调函数;
所述低电平状态,对应于所述第二回调函数。
4.根据权利要求1所述的方法,其特征在于,所述构建虚拟I/O设备,还包括:
为所述虚拟I/O设备分配内存地址,并在所述内存地址中赋予所述虚拟引脚对应的所述回调函数。
5.一种虚拟ECU实现装置,其特征在于,包括:
第一虚拟化模块,用于构建虚拟CPU线程,所述虚拟CPU线程能够调用所述虚拟CPU对应的指令集中的指令,并执行对应的指令操作;
第二虚拟化模块,用于构建虚拟I/O设备,所述虚拟I/O设备包括至少一个虚拟引脚,所述虚拟引脚至少对应有回调函数;
第三虚拟化模块,用于构建虚拟内存,所述虚拟内存中存储有与所述虚拟CPU对应的指令集;所述虚拟内存中还设有I/O访问地址;所述I/O访问地址中包括与所述虚拟引脚一一对应的引脚访问地址;
第四虚拟化模块,用于设置内存监听线程,用于监听所述引脚访问地址被访问,并执行对应的所述虚拟引脚的操作;其中,
所述第四虚拟化模块具体用于:
所述内存监听线程监听到第一虚拟引脚对应的访问地址被访问;
基于所述第一虚拟引脚与第二虚拟引脚连接关系,所述内存监听线程执行所述第二虚拟引脚对应的回调函数;
根据所述第二虚拟引脚的回调函数,启动所述虚拟CPU线程;
基于所述虚拟CPU线程调用所述指令集中对应的指令,并执行;
构建模拟设备,所述模拟设备包括与其相对应的至少一个所述虚拟引脚;
所述第二虚拟化模块包括:虚拟引脚配置单元,虚拟引脚配置单元具体用于:
任一所述虚拟引脚至少对应有引脚ID、引脚电平信息和引脚连接关系,其中,
所述引脚ID,用于表示所述虚拟引脚的标识信息;
所述引脚电平信息,用于表示所述虚拟引脚的电平状态信息,并与所述虚拟引脚的所述回调函数相对应;
所述引脚连接关系,用于表示相连的两个所述虚拟引脚的连接关系。
6.根据权利要求5所述的装置,其特征在于,
所述第一虚拟化模块具体用于:
在所述虚拟内存中构建寄存器;
所述虚拟CPU线程调用所述指令集中的指令,对所述指令进行解析,并对应操作,将所述操作的结果存储在所述寄存器内。
7.根据权利要求5所述的装置,其特征在于,所述虚拟引脚配置单元具体用于:
所述引脚电平信息包括高电平状态和低电平状态;所述回调函数至少包括第一回调函数和第二回调函数,其中,
所述高电平状态,对应于所述第一回调函数;
所述低电平状态,对应于所述第二回调函数。
8.根据权利要求5所述的装置,其特征在于,所述第二虚拟化模块具体用于:
为所述虚拟I/O设备分配内存地址,并在所述内存地址中赋予所述虚拟引脚对应的所述回调函数。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现所述权利要求1-4中任一所述的虚拟ECU实现方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时,以实现所述权利要求1-4中任一所述的虚拟ECU实现方法的步骤。
CN202211193904.1A 2022-09-28 2022-09-28 虚拟ecu实现方法、装置、电子设备及存储介质 Active CN115576807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211193904.1A CN115576807B (zh) 2022-09-28 2022-09-28 虚拟ecu实现方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211193904.1A CN115576807B (zh) 2022-09-28 2022-09-28 虚拟ecu实现方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115576807A CN115576807A (zh) 2023-01-06
CN115576807B true CN115576807B (zh) 2023-09-08

Family

ID=84583588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211193904.1A Active CN115576807B (zh) 2022-09-28 2022-09-28 虚拟ecu实现方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115576807B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845133A (en) * 1995-07-06 1998-12-01 Cyrix Corporation Virtualized functions within a microprocessor
CN102799465A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 分布式虚拟化系统的虚拟中断管理方法及装置
DE102013104596A1 (de) * 2013-05-06 2014-11-06 Dspace Digital Signal Processing And Control Engineering Gmbh Testeinrichtung zum Test eines virtuellen Steuergeräts
CN110377004A (zh) * 2019-07-12 2019-10-25 北京祥远通达科技有限公司 车用半虚拟ecu测试系统及其测试方法
CN111104198A (zh) * 2019-11-08 2020-05-05 苏州浪潮智能科技有限公司 一种提高扫描系统插件运行效率的方法、设备及介质
CN113791605A (zh) * 2021-09-13 2021-12-14 一汽解放汽车有限公司 一种测试方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017120016A1 (de) * 2017-08-31 2019-02-28 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845133A (en) * 1995-07-06 1998-12-01 Cyrix Corporation Virtualized functions within a microprocessor
CN102799465A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 分布式虚拟化系统的虚拟中断管理方法及装置
DE102013104596A1 (de) * 2013-05-06 2014-11-06 Dspace Digital Signal Processing And Control Engineering Gmbh Testeinrichtung zum Test eines virtuellen Steuergeräts
CN110377004A (zh) * 2019-07-12 2019-10-25 北京祥远通达科技有限公司 车用半虚拟ecu测试系统及其测试方法
CN111104198A (zh) * 2019-11-08 2020-05-05 苏州浪潮智能科技有限公司 一种提高扫描系统插件运行效率的方法、设备及介质
CN113791605A (zh) * 2021-09-13 2021-12-14 一汽解放汽车有限公司 一种测试方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115576807A (zh) 2023-01-06

Similar Documents

Publication Publication Date Title
CN110134386B (zh) 一种程序编辑方法和装置
US20040123090A1 (en) Providing access to system management information
CN104866443A (zh) 可中断存储独占
CN111427782A (zh) 安卓动态链接库的运行方法、装置、设备及存储介质
CN115576807B (zh) 虚拟ecu实现方法、装置、电子设备及存储介质
CN113672504A (zh) 一种智能设备测试方法、装置、设备以及存储介质
CN112965895A (zh) 桌面应用程序自动化测试方法、装置、设备及存储介质
CN116775061A (zh) 微服务应用的部署方法、装置、设备及存储介质
CN110955566B (zh) 侦错方法
CN111295658B (zh) 模拟装置、模拟方法和计算机能读取的存储介质
US20090322768A1 (en) Compile-time type-safe composable state objects
CN114036218A (zh) 一种数据模型切换方法、装置、服务器和存储介质
US20210081304A1 (en) Compatibility testing with different environment configurations
CN112559336A (zh) 自适应调试异构计算芯片的方法、装置、系统及主板芯片
CN109542447B (zh) 一种otx程序文件执行方法及装置
US20220066911A1 (en) Virtual machine for developing and testing target code for hardware designs
US6370496B1 (en) System for intelligent visualization and control of computer hardware
CN112596838B (zh) 通用Web页面的显示方法、装置、设备及存储介质
CN115904971A (zh) 基于VxWorks系统的机载平台软件的封装和测试方法
US20210406160A1 (en) Verification device and verification method
JP2629359B2 (ja) 論理シミュレータ
CN117435494A (zh) 函数测试方法、装置、存储介质及电子设备
CN115407756A (zh) 一种虚拟控制器测试方法及装置、设备和介质
CN115114098A (zh) Fpga加速卡功耗测试方法、装置及电子设备
CN117850392A (zh) 车载系统的测试方法、装置、系统、设备、介质及产品

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