发明名称 一种可扩展的嵌入式仿真测试系统
摘要 为了克服嵌入式软件测试过程中,由于对目标硬件过分依赖所导致的嵌入式软件测试不充分的缺点,通过最大程度上降低操作界面与底层虚拟机的耦合度以及定义良好的模块设计,本发明提供了一种可扩展的嵌入式仿真测试系统,该系统包括用户界面层和虚拟机仿真层;户界面层是完全独立于其它层的用户交互层,只通过命令行调用与底层的虚拟机进行交互,虚拟机仿真层实现对目标硬件的仿真;该系统适用于多种处理器的虚拟机体系架构,建立抽象的嵌入式处理器模型,并提供接口以集成上层软件测试功能。
申请公布号 CN102681941A 申请公布日期 2012.09.19
申请号 CN201210150959.4 申请日期 2012.05.15
申请人 北京理工大学 发明人 王崇文;丁刚毅;刘来旸
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京理工大学专利中心 11120 代理人 李爱英;郭德忠
主权项 一种可扩展的嵌入式仿真测试系统,其特征在于:该系统包括用户界面层和虚拟机仿真层;户界面层是完全独立于其它层的用户交互层,只通过命令行调用与底层的虚拟机进行交互,其实现的方式为:用户界面程序生成一个子进程用于运行虚拟机,通过将输入输出流重定向到虚拟机以实现进程间通信,用户界面程序初始化的时候首先发送一个查询命令到虚拟机,通过查询该虚拟机所提供的所有仿真命令及信息,虚拟机将该命令及信息反馈给用户界面并将其功能全部初始化,以上过程是在该仿真测试软件启动的时候自动完成的;其中,用户界面是根据底层虚拟机的命令行信息动态生成,对应于不同的底层虚拟机有不同的用户界面提供给用户使用;在得到虚拟机所有命令及信息后,用户便能通过该层提供的可视化操作执行包括目标文件的装载、目标文件的反汇编、程序的仿真执行、虚拟机的状态查看、虚拟内存的查看的任务;虚拟机仿真层采用模块化设计,包括存储器管理模块、体系结构定义模块、目标文件装载模块、指令解码执行模块、仿真控制模块;存储器管理模块负责对目标硬件的存储器系统进行建模,并提供对该存储器模型的访问接口,通过配置参数实现存储器地址映射和虚拟地址转换任务,其中目标硬件仅限于存储器系统统一编址的处理器类型;体系结构定义模块定义了描述目标硬件运行时状态的一系列数据结构,包括寄存器模型、程序计数器、程序执行上下文内容结构、中断向量,其中的寄存器模型中还定义了存储器映射寄存器及对寄存器访问的操作;目标文件装载模块负责将编译链接好的目标文件装入存储器模型,并在目标文件装入的过程中完成对虚拟机的初始化;指令解码执行模块实现指令编码到指令操作的映射,完成对目标硬件指令 集的仿真;该模块采用一系列宏定义的方式建立起处理器指令集解码器,通过配置指令缓存达到对CISC/RISC类型处理器指令集的指令解码;该模块接受的输入为一个指令编码,根据该模块定义的解码规则对指令编码中的指令前缀进行过滤,识别出操作码和数据,并找到与该操作码相对应的指令功能的具体实现代码段,使用指令中的数据参与计算并执行该代码段,最后完成对处理器状态的设置;仿真控制模块完成从程序装载到指令执行的仿真流程的控制,对虚拟机结构中其他模块的访问都必须通过该仿真控制模块;其中,各模块的调用关系以及工作流程如下:仿真控制模块使用程序装载load命令调用后,目标文件装载模块根据仿真控制模块load命令的参数进行程序装载工作,程序装载过程中装载模块把目标文件中的内容通过调用存储器管理模块的写命令的方式写入存储器管理模块中的存储器模型,并调用init命令将体系结构模块中的寄存器进行初始化;仿真控制模块在执行程序前,将调用init_decoder命令将指令解码执行模块中的解码器初始化,指令执行的时候解码执行模块调用存储器管理模块读写数据,修改体系结构模块的状态;此外,仿真控制模块能直接和存储器管理模块和体系结构定义模块进行通信,以便于外部程序接口能够通过仿真控制模块对存储器管理模块中的存储器模型和体系结构定义模型进行访问。
地址 100081 北京市海淀区中关村南大街5号