基于实代码仿真平台的仿真方法及系统、节点的制作方法

文档序号:6339602阅读:388来源:国知局

专利名称::基于实代码仿真平台的仿真方法及系统、节点的制作方法
技术领域
:本发明涉及实代码仿真领域,具体涉及一种基于实代码仿真平台的仿真方法及系统、节点。
背景技术
:“实代码”仿真模式在算法和实现之间起到桥梁作用,使得从仿真到实现的过程中不需要再进行二次编码,而是平滑过渡。仿真时测试及验证通过的实代码能够直接在实际硬件上运行,解决了传统仿真模式中协议等单独层次仿真通过而却不能在实际硬件上实现的弊端,具有深层次的远大意义。在实代码仿真中,实代码仿真平台一般都会加载大量的节点,并且这些节点采用了同一套代码进行仿真。其中,代码以动态链接库(DynamicLinkLibrary,DLL)的方式加载入实代码仿真平台的内存,并且DLL只有一个副本,每个节点将会加载该DLL并且在不同的时间点上对代码进行仿真处理。由于DLL只有一个副本,DLL中的节点代码镜像将会无限次的被每个节点所更改。其中,节点代码镜像形象地来讲就是每个节点在代码处理完成之后保存的节点状态信息(通常以全局变量的形式存在)。这样,造成的结果将是第二个节点的代码镜像将会是第一个节点的代码镜像,使得在仿真过程中无法区分各个节点。
发明内容针对上述缺陷,本发明实施例提供一种基于实代码仿真平台的仿真方法及系统、节点,能够在仿真过程中区分各个节点。一种基于实代码仿真平台的节点切换方法,包括节点接收实代码仿真平台发送的中断消息,所述中断消息用于触发所述节点进行代码仿真;所述节点将其数组中预先储存的状态信息拷贝至动态链接库中所述节点对应的储存段中储存;所述节点加载所述动态链接库中的代码进行仿真处理;所述节点将所述动态链接库中经过仿真理后的状态信息拷贝至所述节点的数组中储存。一种基于实代码仿真平台的节点,包括接收单元,用于接收实代码仿真平台发送的中断消息,所述中断消息用于触发所述节点进行代码仿真;第一拷贝单元,用于将所述节点的数组中预先储存的状态信息拷贝至动态链接库中所述节点对应的储存段中储存;加载单元,用于加载所述动态链接库中的代码进行仿真处理;第二拷贝单元,用于将所述动态链接库中经过仿真理后的状态信息拷贝至所述节点的数组中储存。一种基于实代码仿真平台的节点仿真系统,包括上述的节点和实代码仿真平台;其中,所述实代码仿真平台用于发送中断消息至所述节点,所述中断消息用于触发所述节点进行代码仿真。本发明实施例中,节点在接收到实代码仿真平台发送的中断消息之后,先将其数组中预先储存的状态信息拷贝至动态链接库中该节点对应的储存段中储存;然后节点再加载动态链接库中的代码进行仿真处理;最后节点将动态链接库中经过仿真理后的状态信息拷贝至该节点的数组中储存。本发明实施例可以避免节点的状态信息被其他节点更改,使得在仿真过程中可以区分各个节点。为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种基于实代码仿真平台的节点仿真方法的流程示意图;图2为本发明实施例提供的一种基于实代码仿真平台的节点仿真场景示意图;图3为本发明实施例提供的一种基于实代码仿真平台的节点的结构示意图;图4为本发明实施例提供的一种基于实代码仿真平台的节点仿真系统的结构示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中提供了一种基于实代码仿真平台的节点仿真方法及系统、节点,能够在仿真过程中区分各个节点。以下分别进行详细说明。实施例一请参阅图1,图1为本发明实施例提供的一种基于实代码仿真平台的节点仿真方法的流程示意图。如图1所示,该方法可以包括以下步骤101、节点接收实代码仿真平台发送的中断消息,其中,该中断消息用于触发该节点进行代码仿真;举例来说,本发明实施例中实代码仿真平台可以是基于C++的面向对象离散仿真软件(ObjectiveModularNetworkTestbedinC++,OMNeT++)平台,也可以是其他的可用于实代码仿真的离散仿真器,本发明实施例不作限定。本发明实施例中,节点可以接收实代码仿真平台的离散仿真事件队列发送的中断消息。102、节点将其数组中预先储存的状态信息拷贝至动态链接库中该节点对应的储存段中储存;本发明实施例中,实代码仿真平台可以将操作系统(OperatingSystem,OS)层代码、硬件抽象层(HardwareAbstractionLayer,HAL)代码以及上层协议栈代码等需要仿真的代码预先封装成动态链接库,并将动态链接库加载入实代码仿真平台中的内存。本发明实施例中,实代码仿真平台将动态链接库加载入实代码仿真平台中的内存时,需要记录函数main()的入口点和接口,不管多少个节点使用动态链接库,实代码仿真平台的内存中只有一个动态链接库副本。其中,实代码仿真平台在初始化过程中,可以解析动态链接库中的可移植执行体(PortableExecutable,ΡΕ)的结构,定位每个节点的状态信息的储存段。一般地,每个节点的状态信息不相同,可以用于区别不同的节点。本发明实施例中,实代码仿真平台在初始化完成后,可以将动态链接库中每个节点的状态信息(即初始状态信息)拷贝至各个节点数组中储存。103、节点加载上述动态链接库中的代码进行仿真处理;其中,上述步骤103的具体实现过程与现有技术相同,本发明实施例此处不作赘述。104、节点将上述动态链接库中经过仿真理后的状态信息拷贝至该节点的数组中储存。本发明实施例一中,节点在接收到实代码仿真平台发送的中断消息之后,先将其数组中预先储存的状态信息拷贝至动态链接库中该节点对应的储存段中储存;然后节点再加载动态链接库中的代码进行仿真处理;最后节点将动态链接库中经过仿真理后的状态信息拷贝至该节点的数组中储存。本发明实施例可以避免节点的状态信息被其他节点更改,使得在仿真过程中可以区分各个节点。实施例二请参阅图2,图2为本发明实施例提供的一种基于实代码仿真平台的节点仿真的场景示意图。如图2所示,节点1可以接收OMNeT++平台的离散仿真事件队列发送的中断消息,其中,该中断消息用于触发该节点1进行代码仿真;节点1在接收到OMNeT++平台的离散仿真事件队列发送的中断消息之后,节点1可以将其数组中预先储存的状态信息拷贝至动态链接库中节点1对应的储存段中储存;节点1加载上述动态链接库中的代码进行仿真处理;节点1将上述动态链接库中经过仿真理后的状态信息拷贝至节点1的数组中储存。如图2所示,节点2也可以接收OMNeT++平台的离散仿真事件队列发送的中断消息,其中,该中断消息用于触发该节点2进行代码仿真;节点2在接收到OMNeT++平台的离散仿真事件队列发送的中断消息之后,节点2可以将其数组中预先储存的状态信息拷贝至动态链接库中节点2对应的储存段中储存;节点2加载上述动态链接库中的代码进行仿真处理;节点2将上述动态链接库中经过仿真理后的状态信息拷贝至节点2的数组中储存。本发明实施例二中,节点1、2在接收到OMNeT++平台发送的中断消息之后,先将其数组中预先储存的状态信息拷贝至动态链接库中节点1、2对应的储存段中储存;然后节点1、2再加载动态链接库中的代码进行仿真处理;最后节点1、2将动态链接库中经过仿真理后的状态信息拷贝至节点1、2的数组中储存。本发明实施例可以避免节点1的状态信息被节点2更改,也可以避免节点2的状态信息被节点1更改,使得在仿真过程中可以区分节点1、2。实施例三请参阅图3,图3为本发明实施例提供的一种基于实代码仿真平台的节点的结构示意图。如图3所示,该节点可以包括接收单元301,用于接收实代码仿真平台发送的中断消息,其中,该中断消息用于触发本节点进行代码仿真;举例来说,接收单元301可以用于接收实代码仿真平台的离散仿真事件队列发送的中断消息,该中断消息用于触发本节点进行代码仿真。第一拷贝单元302,用于将本节点的数组中预先储存的状态信息拷贝至动态链接库中本节点对应的储存段中储存;加载单元303,用于加载上述动态链接库中的代码进行仿真处理;第二拷贝单元304,用于将上述动态链接库中经过仿真理后的状态信息拷贝至本节点的数组中储存。本发明实施例三提供的节点中,接收单元301在接收到实代码仿真平台发送的中断消息之后,第一拷贝单元302先将其数组中预先储存的状态信息拷贝至动态链接库中本节点对应的储存段中储存;然后加载单元303再加载动态链接库中的代码进行仿真处理;最后第二拷贝单元304将动态链接库中经过仿真理后的状态信息拷贝至本节点的数组中储存。本发明实施例可以避免节点的状态信息被其他节点更改,使得在仿真过程中可以区分各个节点。实施例四请参阅图4,图4为本发明实施例提供的一种基于实代码仿真平台的节点仿真系统的结构示意图。如图4所示,该系统可以包括至少一个节点401和实代码仿真平台402;其中,上述的节点401的结构与功能均和实施例三提供的节点相同,本发明实施例此处不作复述。其中,实代码仿真平台402,用于发送中断消息至节点401,其中,该中断消息用于触发节点401进行代码仿真。本发明实施例中,实代码仿真平台402还用于将需要仿真的代码封装成动态链接库,并将动态链接库加载入实代码仿真平台402中的内存。其中,需要仿真的代码包括但不限于操作系统层代码、硬件抽象层代码以及上层协议栈代码。本发明实施例中,实代码仿真平台402还用于在初始化过程中,解析动态链接库中的PE结构,定位每个节点的状态信息的储存段。CN102541617A本发明实施例中,实代码仿真平台402还用于在初始化完成后,将动态链接库中每个节点的状态信息拷贝至各个节点数组中储存。本发明实施例四中,节点401在接收到实代码仿真平台402发送的中断消息之后,先将其数组中预先储存的状态信息拷贝至动态链接库中该节点对应的储存段中储存;然后节点401再加载动态链接库中的代码进行仿真处理;最后节点将动态链接库中经过仿真理后的状态信息拷贝至该节点的数组中储存。本发明实施例可以避免节点的状态信息被其他节点更改,使得在仿真过程中可以区分各个节点。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。以上对本发明实施例所提供的基于实代码仿真平台的节点仿真方法、系统和节点进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1.一种基于实代码仿真平台的节点仿真方法,其特征在于,包括节点接收实代码仿真平台发送的中断消息,所述中断消息用于触发所述节点进行代码仿真;所述节点将其数组中预先储存的状态信息拷贝至动态链接库中所述节点对应的储存段中储存;所述节点加载所述动态链接库中的代码进行仿真处理;所述节点将所述动态链接库中经过仿真理后的状态信息拷贝至所述节点的数组中储存。2.根据权利要求1所述的方法,其特征在于,所述方法还包括将需要仿真的代码封装成动态链接库;所述需要仿真的代码包括但不限于操作系统层代码、硬件抽象层代码以及上层协议栈代码;将所述动态链接库加载入所述实代码仿真平台中的内存。3.根据权利要求2所述的方法,其特征在于,所述方法还包括所述实代码仿真平台在初始化过程中,解析所述动态链接库中的可移植执行体的结构,定位每个节点的状态信息的储存段。4.根据权利要求3所述的方法,其特征在于,所述方法还包括所述实代码仿真平台在初始化完成后,将所述动态链接库中每个节点的状态信息拷贝至各个节点数组中储存。5.根据权利要求14任意一项所述的方法,其特征在于,所述节点接收实代码仿真平台发送的中断消息包括所述节点接收实代码仿真平台的离散仿真事件队列发送的中断消息。6.一种基于实代码仿真平台的节点,其特征在于,包括接收单元,用于接收实代码仿真平台发送的中断消息,所述中断消息用于触发所述节点进行代码仿真;第一拷贝单元,用于将所述节点的数组中预先储存的状态信息拷贝至动态链接库中所述节点对应的储存段中储存;加载单元,用于加载所述动态链接库中的代码进行仿真处理;第二拷贝单元,用于将所述动态链接库中经过仿真理后的状态信息拷贝至所述节点的数组中储存。7.根据权利要求6所述的节点,其特征在于,所述接收单元,用于接收实代码仿真平台的离散仿真事件队列发送的中断消息,所述中断消息用于触发所述节点进行代码仿真。8.一种基于实代码仿真平台的节点仿真系统,其特征在于,包括如权利要求67任意一项所述的节点和实代码仿真平台;其中,所述实代码仿真平台用于发送中断消息至所述节点,所述中断消息用于触发所述节点进行代码仿真。9.根据权利要求8所述的系统,其特征在于,所述实代码仿真平台,还用于将需要仿真的代码封装成动态链接库;所述需要仿真的代码包括但不限于操作系统层代码、硬件抽象层代码以及上层协议栈代码;将所述动态链接库加载入所述实代码仿真平台中的内存。10.根据权利要求9所述的系统,其特征在于,所述实代码仿真平台,还用于在初始化过程中,解析所述动态链接库中的可移植执行体的结构,定位每个节点的状态信息的储存段。11.根据权利要求10所述的系统,其特征在于,所述实代码仿真平台,还用于在初始化完成后,将所述动态链接库中每个节点的状态信息拷贝至各个节点数组中储存。全文摘要本发明实施例涉及实代码仿真领域,公开了一种基于实代码仿真平台的仿真方法及系统、节点。其中,该方法包括节点接收实代码仿真平台发送的中断消息,其中,该中断消息用于触发该节点进行代码仿真;节点将其数组中预先存储的状态信息拷贝至动态链接库中该节点对应的存储段中存储;该节点加载上述动态链接库中的代码进行仿真处理;节点将上述动态链接库中经过仿真理后的状态信息拷贝至该节点的数组中存储。实施本发明实施例,可以在仿真过程中区分各个节点。文档编号G06F9/455GK102541617SQ201010601308公开日2012年7月4日申请日期2010年12月22日优先权日2010年12月22日发明者单卫龙,马奎申请人:感知物联网集团(无锡)有限公司,无锡物联网产业研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1