专利名称:一种基于构件的模拟器自动生成方法
技术领域:
本发明涉及一种嵌入式系统开发工具,更具体的说,是涉及一种基于构件的模拟器自动生成方法。
背景技术:
在嵌入式系统的设计中,采用软/硬件协同设计的方法能有效的提高系统的开发效率,缩短产品的开发周期。在通常的嵌入式系统中,处理器是整个系统的核心。同时,嵌入式系统还包括存储设备、其他I/O和通讯设备接口等。对于嵌入式系统软件的开发更具有意义的是对于整个系统的建模,在硬件和软件上统一系统仿真平台,开发一个用于处理器协同模拟,协同验证的系统模拟器。
完全手工开发一个仿真器,不但是一项非常繁重的工作,而且易于出错。一般来说,开发仿真器不仅需要花费数月的时间,还需要花费大量的时间来进行仿真器正确性的验证。即便如此,在使用该仿真器的时候,也不能认定其已经是正确的,显然,我们需要一个工具,可以根据用户的需求自动生成仿真器。这样,不但可以大大减少开发的工作量,并且易于修改排错。目前这方面的大部分工具都是针对硬件设计的正确性验证,在逻辑层进行仿真。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供了一种基于构件的模拟器自动生成方法。
为了解决上述技术问题,本发明是通过以下技术方案实现的。
一种基于构件的模拟器自动生成方法,包括以下步骤(1)启动调试服务器调试服务器在启动时只有一个主线程,用于调用配置文件的加载器;(2)加载配置文件配置文件是具有特定格式的XML文件,加载配置文件是由配置文件的加载器完成;通过该配置文件,加载器动态生成一个嵌入式模拟系统;(3)启动调试服务和调试代理完成加载配置文件后,调试服务器需要启动调试服务和调试代理,调试服务和调试代理都具有各自的线程,在调试服务和调试代理都启动以后,调试服务器就可以接收外部系统的调试请求,运行完成模拟器的自动生成。
作为一种改进,所述的调试服务器是嵌入式系统的一个容器,包括三种构件嵌入式系统,程序加载器和调试服务;程序加载器用于加载用户程序到模拟系统的存储器;同时,调试服务器提供对外的调试服务,异步的和模拟系统的调试接口进行通信,完成调试功能,最后通过调试代理完成对于不同调试工具的适配。
作为一种改进,加载配置文件需要完成如下工作对处理器模型、CPU模型、存储器模型、外围设备模型及总线模型的加载,配置系统的连接,对程序加载器、调试服务及调试代理的加载;所述的处理器模型是整个模拟系统的核心部分,负责对处理器内部具有独立运算能力的不同运算单元的管理,采用二级模型来表示真实的处理器系统;所述的CPU模型是对具有独立运算能力的运算单元的描述,是整个处理器模型的核心;所述的存储器模型是模拟系统的重要组成部分,存储器模型采用两级结构设计,对外表现为统一的32位寻址,外部的执行实体发起存取数据的请求,存储器将地址进行翻译,完成逻辑地址到物理地址的转换,同时,对于物理地址经过访问控制模型的过滤,最后存取数据的请求发送到存储区域模型;所述的外围设备模型分为片内设备模型和片外设备模型,片内设备模型与系统有较高的耦合度,片外设备模型采用软总线互连;所述的总线模型是整个系统互连模型的核心,它是一个软总线的模型,对执行实体间的数据交换通路进行建模;作为一种改进,还实现了系统互连模型和调试模型;所述的系统互连模型是从处理器模拟到系统模拟的重要环节,系统互连模型定义了各个不同的执行实体如何互连形成一个完整的系统;所述的调试模型是贯穿整个模拟系统的模型,整个模拟系统在调试模型中被看作是一个调试服务器,调试模型实现了模拟引擎的概念;
作为一种改进,所述的存储区域模型是对不同存储介质的建模。
作为一种改进,所述的系统互连模型包括两个部分,一个是同步互连模型,一个是异步互连模型。
与现有技术相比,本发明的有益效果是首先,根据一个描述文件来生成仿真器部件不易出错;其次,修改方便,对指令集的修改只需修改描述文件即可;第三,采用此种方法可以大大减少仿真器的开发时间。
图1是模拟系统的总体框架图。
图2是系统互连模型图。
图3是同步互连总线图。
图4是异步互连总线图。
图中,1处理器模块、2存储器模块、3外围设备模块、4程序加载器、5调试服务、6调试代理、7调试服务器、21执行实体、22互连总线。
具体实施例方式
结合附图,下面对本发明进行详细说明。
一种基于构件的模拟器自动生成方法,包括以下步骤1、设计模拟器,包括以下步骤继承SourceInstruction类实现处理器的指令对象;实现指令加载器IInstructionLoader接口,该类定义处理器的取指逻辑;实现处理器IProcessor接口,该类定义处理器的特殊功能;实现IAddressGenerator接口,该接口需要实现地址产生逻辑;实现IAccessManager接口,完成寻址逻辑;实现IInstructionTranslator接口,完成源指令到虚拟指令的转换;继承或实现RegisterFile,实现处理器的寄存器模型;实现IDevice接口,实现处理器的片上外设。以上英文名称为具体实现的JAVA程序语言的类名或是接口名。
2、模拟器的运行步骤(1)启动调试服务器调试服务器在刚启动时只有一个主线程,主线程的唯一任务就是调用配置文件的加载器。
(2)加载配置文件加载配置文件是由配置文件的加载器完成的。配置文件是一个具有特定格式的XML文件。通过该配置文件,加载器动态生成一个嵌入式系统。加载配置文件需要完成如下工作加载处理器模型处理器模型是整个模拟系统的核心部分,负责对处理器内部具有独立运算能力的不同运算单元的管理,采用二级模型来表示真实的处理器系统;加载CPU模型CPU模型是对具有独立运算能力的运算单元的描述,是整个处理器模型的核心;加载存储器模型存储器模型是模拟系统的重要组成部分,存储器模型采用两级结构设计,对外表现为统一的32位寻址,外部的执行实体发起存取数据的请求,存储器将地址进行翻译,完成逻辑地址到物理地址的转换,同时,对于物理地址经过访问控制模型的过滤,最后存取数据的请求发送到存储区域模型;加载外围设备模型外围设备模型分为片内设备模型和片外设备模型,片内设备模型与系统有较高的耦合度,片外设备模型采用软总线互连;加载总线模型总线模型是整个系统互连模型的核心,它是一个软总线的模型,对执行实体间的数据交换通路进行建模;配置系统的连接将上述各个模型连接配置成一个完整的嵌入式系统;加载系统的程序加载器程序加载器是模拟系统一个重要的组成部分,用于加载用户程序到模拟系统的存储器;加载调试服务调试服务是独立于处理器线程的一个提供调试服务的线程,调试服务异步的和模拟系统的调试接口进行通信,完成调试功能;加载调试代理调试代理整个系统和外部系统连接的一个接口,管理两种不同的调试方式,一种是本地调式,一种是分布式的调试。
(3)启动调试服务和调试代理在完成加载系统模型以后,调试服务器需要启动调试服务和调试代理,调试服务和调试代理都具有各自的线程。在服务和代理都启动以后,调试服务器就可以接收外部系统的调试请求了。嵌入式模拟系统是整个调试服务器的基础,负责执行应用程序。调试服务器负责和嵌入式系统通信,控制系统的运行,获取系统的运行状态。
最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
权利要求
1.一种基于构件的模拟器自动生成方法,其特征在于,包括以下步骤(1)启动调试服务器调试服务器在启动时只有一个主线程,用于调用配置文件的加载器;(2)加载配置文件配置文件是具有特定格式的XML文件,加载配置文件是由配置文件的加载器完成;通过该配置文件,加载器动态生成一个嵌入式模拟系统;(3)启动调试服务和调试代理完成加载配置文件后,调试服务器需要启动调试服务和调试代理,调试服务和调试代理都具有各自的线程,在调试服务和调试代理都启动以后,调试服务器就可以接收外部系统的调试请求,运行完成模拟器的自动生成。
2.根据权利要求1所述的一种基于构件的模拟器自动生成方法,其特征在于,所述的调试服务器是嵌入式系统的一个容器,包括三种构件嵌入式系统,程序加载器和调试服务;程序加载器用于加载用户程序到模拟系统的存储器;同时,调试服务器提供对外的调试服务,异步的和模拟系统的调试接口进行通信,完成调试功能,最后通过调试代理完成对于不同调试工具的适配。
3.根据权利要求1所述的一种基于构件的模拟器自动生成方法,其特征在于,加载配置文件需要完成如下工作对处理器模型、CPU模型、存储器模型、外围设备模型及总线模型的加载,配置系统的连接,对程序加载器、调试服务及调试代理的加载;所述的处理器模型是整个模拟系统的核心部分,负责对处理器内部具有独立运算能力的不同运算单元的管理,采用二级模型来表示真实的处理器系统;所述的CPU模型是对具有独立运算能力的运算单元的描述,是整个处理器模型的核心;所述的存储器模型是模拟系统的重要组成部分,存储器模型采用两级结构设计,对外表现为统一的32位寻址,外部的执行实体发起存取数据的请求,存储器将地址进行翻译,完成逻辑地址到物理地址的转换,同时,对于物理地址经过访问控制模型的过滤,最后存取数据的请求发送到存储区域模型;所述的外围设备模型分为片内设备模型和片外设备模型,片内设备模型与系统有较高的耦合度,片外设备模型采用软总线互连;所述的总线模型是整个系统互连模型的核心,它是一个软总线的模型,对执行实体间的数据交换通路进行建模。
4.根据权利要求1所述的一种基于构件的模拟器自动生成方法,其特征在于,还实现了系统互连模型和调试模型;所述的系统互连模型是从处理器模拟到系统模拟的重要环节,系统互连模型定义了各个不同的执行实体如何互连形成一个完整的系统;所述的调试模型是贯穿整个模拟系统的模型,整个模拟系统在调试模型中被看作是一个调试服务器,调试模型实现了模拟引擎的概念。
5.根据权利要求3所述的一种基于构件的模拟器自动生成方法,其特征在于,所述的存储区域模型是对不同存储介质的建模。
6.根据权利要求4所述的一种基于构件的模拟器自动生成方法,其特征在于,所述的系统互连模型包括两个部分,一个是同步互连模型,一个是异步互连模型。
全文摘要
本发明涉及一种嵌入式系统开发工具,旨在提供一种基于构件的模拟器自动生成方法。该方法包括以下步骤(1)启动调试服务器用于调用配置文件的加载器;(2)加载配置文件由配置文件的加载器完成;通过该配置文件,加载器动态生成一个嵌入式模拟系统;(3)启动调试服务和调试代理完成加载配置文件后,调试服务器启动调试服务和调试代理,接收外部系统的调试请求,运行完成模拟器的自动生成。本发明的有益效果是根据一个描述文件来生成仿真器部件不易出错;修改方便,对指令集的修改只需修改描述文件即可;采用此种方法可以大大减少仿真器的开发时间。
文档编号G06F9/44GK101034351SQ20071006660
公开日2007年9月12日 申请日期2007年1月5日 优先权日2007年1月5日
发明者赵民德, 吕攀, 李红, 杨国青, 姜旭锋, 刘凯, 吴朝晖 申请人:浙江大学