无线传感器网络控制代码形式化方法和装置制造方法及图纸

技术编号:9642262 阅读:96 留言:0更新日期:2014-02-07 00:37
本发明专利技术公开了一种无线传感器网络控制代码形式化方法和装置。所述无线传感器网络控制代码形式化方法包括:利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图;根据控制代码中不同网元之间的数据交互,在所述控制流图中添加属于不同网元的子控制流图之间的网络边;在所述控制流图中为每个网元添加闲置节点,并为所述闲置节点添加幽灵边;在所述控制流图中为每个被抢占节点添加抢占边以及对应的回溯边;参照所述任务图中的每一条边,在所述控制流图中添加相应的任务边。本发明专利技术公开的无线传感器网络控制代码形式化方法和装置能够方便程序员理解无线传感器网络控制代码的控制逻辑。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种无线传感器网络控制代码形式化方法和装置。所述无线传感器网络控制代码形式化方法包括:利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图;根据控制代码中不同网元之间的数据交互,在所述控制流图中添加属于不同网元的子控制流图之间的网络边;在所述控制流图中为每个网元添加闲置节点,并为所述闲置节点添加幽灵边;在所述控制流图中为每个被抢占节点添加抢占边以及对应的回溯边;参照所述任务图中的每一条边,在所述控制流图中添加相应的任务边。本专利技术公开的无线传感器网络控制代码形式化方法和装置能够方便程序员理解无线传感器网络控制代码的控制逻辑。【专利说明】无线传感器网络控制代码形式化方法和装置
本专利技术涉及无线传感器网络
,尤其涉及无线传感器网络控制代码形式化方法和装置。
技术介绍
无线传感器网络是目前国内外研究的热点之一。它是由大量廉价的传感器组成,通过有线/无线通信方式自组织形成的网络系统,相互协作地感知周围的数据。由于无线传感器节点是一种典型的资源受限的嵌人式系统,需要一个微型的操作系统来组织和管理硬件,实现应用软件的功能。TinyOS是美国加州大学伯克利分校针对无线传感器网络而设计的一个基于事件驱动的微型操作系统,最初是用汇编和C语言实现的。由于C语言不能有效、方便地满足面向传感器网络的应用开发,其目标代码比较长,经进一步研究设计出了支持组件化的新型编程语言一一NesC。其最大的特点是,将组件化/模块化思想和基于事件驱动的执行模型相结合。NesC应用主要由中断驱动。当一个中断发生时,TinyOS将该中断翻译为一个事件,并将该事件传送至一个目标NesC应用。一个响应于中断事件而异步运行的应用程序子例程由关键词async标注。为了方便,人们通常将这样的子例程称为异步事件处理程序(asynchronous event handler, AEH)。没有标注async关键词的事件处理程序只能被其他任务调用。程序开发人员经常设计AHl来解决中断、发布任务,以完成相应的功能。每个AEH能够抢占其他程序的执行,除非被抢占的程序是一个原子块,因为在NesC语言中,原子块是自动执行的程序块。然而,被发布的任务并不一定立即执行。不像传统的调用-返回机制,任务发布机制仅仅是将任务作为最后一个任务放置在一个任务队列中。而且,一个任务直到所述任务队列中没有排在它前面的任务时才被执行。一旦执行,该任务被运行直至任务结束。由于NesC语言结合了组件化和基于事件驱动的思想,同时NesC语言的源程序经常涉及到多个无线传感器网络节点之间的数据交互,因此用NesC语言编写的源程序中的控制逻辑十分复杂,这给程序开发和测试人员对源程序的开发和调试带来了不便。
技术实现思路
有鉴于此,本专利技术提出一种无线传感器网络控制代码形式化方法和装置,以方便程序员理解无线传感器网络控制代码的控制逻辑。第一方面,本专利技术实施例提供了一种无线传感器网络控制代码形式化方法,所述方法包括:利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图;根据控制代码中不同网元之间的数据交互,在所述控制流图中添加属于不同网元的子控制流图之间的网络边;在所述控制流图中为每个网元添加闲置节点,并为所述闲置节点添加幽灵边;在所述控制流图中为每个被抢占节点添加抢占边以及对应的回溯边;参照所述任务图中的每一条边,在所述控制流图中添加相应的任务边。第二方面,本专利技术实施例提供了一种无线传感器网络控制代码形式化装置,所述装置包括:控制流图生成模块,用于利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图;网络边添加模块,用于根据控制代码中不同网元之间的数据交互,在所述控制流图中添加属于不同网元的子控制流图之间的网络边;闲置节点及幽灵边添加模块,用于在所述控制流图中为每个网元添加闲置节点,并为所述闲置节点添加幽灵边;抢占边及回溯边添加模块,用于在所述控制流图中为每个被抢占节点添加抢占边以及对应的回溯边;任务边添加模块,用于参照所述任务图中的每一条边,在所述控制流图中添加相应的任务边。本专利技术实施例提供的无线传感器网络控制代码形式化方法和装置,通过编译器生成控制流图、任务发布树以及任务图,再根据任务发布树和任务图在控制流图中添加网络边、幽灵边、抢占边、回溯边以及任务边,构建了让程序开发人员更加容易理解的网络上下文控制流图(Network context control flow graph, NCCFG),使得程序开发人员能更容易的理解无线传感器网络控制代码的控制逻辑。【专利附图】【附图说明】通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术第一实施例提供的无线传感器网络控制代码形式化方法的流程图;图2是本专利技术第一实施例提供的无线传感器网络控制代码的控制流图的示意图;图3是本专利技术第一实施例提供的无线传感器网络控制代码的任务发布树;图4是本专利技术第一实施例提供的无线传感器网络控制代码的任务图;图5是本专利技术第一实施例提供的无线传感器网络控制代码形式化方法生成的网络上下文控制流图的示意图;图6是本专利技术第一实施例提供的无线传感器网络控制代码形式化装置的结构图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。图1至图5示出了本专利技术的第一实施例。图1是本专利技术第一实施例提供的无线传感器网络控制代码形式化方法的流程图。本实施例提供的无线传感器网络控制代码形式化方法应用在对无线传感器网络的控制代码进行编译的计算装置中。具体的,所述对无线传感器网络的控制代码进行编译的计算装置是包括个人电脑、工作站、服务器等任何能够对无线传感器网络的NesC控制代码进行编译的计算装置。参见图1,所述无线传感器网络控制代码形式化方法包括:步骤S110,利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图。本实施例的目的在于提供表示无线传感器网络控制代码的网络上下文控制流图(Network context control flow graph, NCCFG)。而网络上下文控制流图是根据编译器生成的控制代码的控制流图(Control flow graph, CFG)、任务发布树(Task postingtree,TPT)以及任务图(Task graph,TG)生成的。因此,首先利用编译器生成控制代码的控制流图、任务发布树以及任务图。所述控制流图是用在编译器中的一个抽象数据结构。它是一个过程或程序的抽象表现,由编译器在内部维护。每个在图形中的节点代表一个原子块,例如,没有任何跳跃或跳跃目标的直线代码块;跳跃目标以一个块开始,和以一个块结束。定向边缘被用于代表在控制流中的跳转。—个子例程m的任务发布树是一个被描述为Gm (m) = (Vm, 本文档来自技高网
...

【技术保护点】
一种无线传感器网络控制代码形式化方法,其特征在于,包括:利用编译器生成控制代码的控制流图、任务发布树以及任务图,其中,所述控制流图包括至少一个对应于一个子例程的子控制流图;根据控制代码中不同网元之间的数据交互,在所述控制流图中添加属于不同网元的子控制流图之间的网络边;在所述控制流图中为每个网元添加闲置节点,并为所述闲置节点添加幽灵边;在所述控制流图中为每个被抢占节点添加抢占边以及对应的回溯边;参照所述任务图中的每一条边,在所述控制流图中添加相应的任务边。

【技术特征摘要】

【专利技术属性】
技术研发人员:连朔赵季中何源刘云浩
申请(专利权)人:无锡儒安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1