[发明专利]一种可扩展的嵌入式仿真测试系统无效
申请号: | 201210150959.4 | 申请日: | 2012-05-15 |
公开(公告)号: | CN102681941A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 王崇文;丁刚毅;刘来旸 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 李爱英;郭德忠 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 扩展 嵌入式 仿真 测试 系统 | ||
技术领域
本发明属于嵌入式仿真测试领域,具体涉及一种可扩展的嵌入式仿真测试系统。
背景技术
传统嵌入式软件测试是基于硬件仿真的,其特点是仿真程度高,速度快,但是其缺点在于需要目标硬件的支持,在目标硬件未成型之前无法投入测试工作中,这便成为了嵌入式软件测试的瓶颈,在一定程度上延缓了嵌入式软件的测试进度并有可能因软件测试的不充分而最终影响到嵌入式设备的稳定性。
为了克服嵌入式软件测试过程中,由于对目标硬件过分依赖所导致的嵌入式软件测试不充分的缺点,实现对嵌入式软件质量的有力保证,嵌入式软件工程师需要在一定程度上脱离目标硬件进行嵌入式软件的测试。要达到这个目标,最有效的方式是对目标硬件进行软件仿真,即用纯软件建立一个虚拟目标硬件来替代真实的目标硬件。在基于以上虚拟目标硬件的开发环境搭建起来以后,嵌入式软件工程师便可以直接在该环境中运行针对目标硬件开发出来的嵌入式软件,并对该嵌入式软件进行初步的测试,等到目标硬件成型后工程师再将嵌入式软件放置到真正的目标硬件上运行并进行更为细致的测试。使用虚拟目标硬件可以大大提高嵌入式软件的测试效率,并且可以在目标硬件成型之前充分对嵌入式软件进行测试分析,及早发现软件中的缺陷。
发明内容
为了克服嵌入式软件测试过程中,由于对目标硬件过分依赖所导致的嵌入式软件测试不充分的缺点,通过最大程度上降低操作界面与底层虚拟机的耦合度以及定义良好的模块设计,本发明提供了一种可扩展的嵌入式仿真测试系统,该系统适用于多种处理器的虚拟机体系架构,建立抽象的嵌入式处理器模型,并提供接口以集成上层软件测试功能。
一种可扩展的嵌入式仿真测试系统,该系统包括用户界面层和虚拟机仿真层;
户界面层是完全独立于其它层的用户交互层,只通过命令行调用与底层的虚拟机进行交互,其实现的方式为:用户界面程序生成一个子进程用于运行虚拟机,通过将输入输出流重定向到虚拟机以实现进程间通信,用户界面程序初始化的时候首先发送一个查询命令到虚拟机,通过查询该虚拟机所提供的所有仿真命令及信息,虚拟机将该命令及信息反馈给用户界面并将其功能全部初始化,以上过程是在该仿真测试软件启动的时候自动完成的。
其中,用户界面是根据底层虚拟机的命令行信息动态生成,对应于不同的底层虚拟机有不同的用户界面提供给用户使用;在得到虚拟机所有命令及信息后,用户便能通过该层提供的可视化操作执行包括目标文件的装载、目标文件的反汇编、程序的仿真执行、虚拟机的状态查看、虚拟内存的查看的任务。
虚拟机仿真层采用模块化设计,包括存储器管理模块、体系结构定义模块、目标文件装载模块、指令解码执行模块、仿真控制模块。
存储器管理模块负责对目标硬件的存储器系统进行建模,并提供对该存储器模型的访问接口,通过配置参数实现存储器地址映射和虚拟地址转换任务,其中目标硬件仅限于存储器系统统一编址的处理器类型。
体系结构定义模块定义了描述目标硬件运行时状态的一系列数据结构,包括寄存器模型、程序计数器、程序执行上下文内容结构、中断向量,其中的寄存器模型中还定义了存储器映射寄存器及对寄存器访问的操作。
目标文件装载模块负责将编译链接好的目标文件装入存储器模型,并在目标文件装入的过程中完成对虚拟机的初始化。
指令解码执行模块实现指令编码到指令操作的映射,完成对目标硬件指令集的仿真;该模块采用一系列宏定义的方式建立起处理器指令集解码器,通过配置指令缓存达到对CISC/RISC类型处理器指令集的指令解码;该模块接受的输入为一个指令编码,根据该模块定义的解码规则对指令编码中的指令前缀进行过滤,识别出操作码和数据,并找到与该操作码相对应的指令功能的具体实现代码段,使用指令中的数据参与计算并执行该代码段,最后完成对处理器状态的设置。
仿真控制模块完成从程序装载到指令执行的仿真流程的控制,对虚拟机结构中其他模块的访问都必须通过该仿真控制模块。
其中,各模块的调用关系以及工作流程如下:
仿真控制模块使用程序装载load命令调用后,目标文件装载模块根据仿真控制模块load命令的参数进行程序装载工作,程序装载过程中装载模块把目标文件中的内容通过调用存储器管理模块的写命令的方式写入存储器管理模块中的存储器模型,并调用init命令将体系结构模块中的寄存器进行初始化。
仿真控制模块在执行程序前,将调用init_decoder命令将指令解码执行模块中的解码器初始化,指令执行的时候解码执行模块调用存储器管理模块读写数据,修改体系结构模块的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210150959.4/2.html,转载请声明来源钻瓜专利网。