- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lesson11---TOSSIM仿真 TinyOS系统经典PPT教程 教学课件
Lesson11 TOSSIM 仿真 介绍TOSSIM仿真器。熟悉编译TOSSIM的步骤,掌握常用的仿真手段,具体有以下几个方面: 编译TOSSIM 用Python 配置仿真器 检查变量 注入包 注意:本节内容针对TinyOS 2.0.1及以上版本的TOSSIM仿真。TinyOS 2.0.0版本的TOSSIM仿真会有稍微的不同,两者的主要区别在于无线射频仿真中噪声的指定方法。 目 录 一、介绍 ---了解 二、编译TOSSIM ---了解 三、使用Python运行TOSSIM ---掌握 四、调试语句 ---掌握 五、配置网络 ---掌握 六、变量 ---掌握 七、注入数据包 ---掌握 八、C++接口 ---了解 一、介绍 TOSSIM 仿真整个TinyOS 应用程序,是通过替换组件中的实现部分(implementation)实现的。 可以灵活的选择组件来替换,可以是通信组件,也可以是芯片组件。 仿真组件的是实现部分是多平台通用的,但它缺少对真实芯片情况的捕捉。 例如,有毫秒级的定时器HilTimerMilliC 组件有针对 atmega128 平台的实现,也有intelmote2平台的实现,还有TOSSIM的仿真实现。如下图: 一、介绍 TOSSIM 是离散事件仿真器。 当它运行时,把事件队列(event queue)里的事件根据时间排序抽出来执行。 仿真事件可以表现为硬件中断或者高级别的系统事件(如事信息包的接收) 。由仿真的级别决定。 另外,任务也是仿真事件。 一、介绍 TOSSIM 是一个库(其核心代码位于tos/lib/tossim):必须编写程序来配置仿真,然后运行它。 TOSSIM 支持两种编程接口: Python 和 C++ 。 Python 允许与正在运行的仿真进行动态地交互,调试功能强大。然而,python解释器是性能瓶颈。 TOSSIM 也有C++ 接口。通常,从一种代码转换到另一种代码是非常简单的。 TOSSIM 目前不支持能耗测量。 二、编译TOSSIM TOSSIM 是TinyOS 的一个库。它的核心代码位于 tos/lib/tossim文件夹中 。 每个TinyOS 源代码目录有一个可选的 sim 子目录,里面包含有那个包package 的仿真实现。例如,tos/chips/atm128/timer/sim 里面就含有 Atmega 128 定时器抽象的TOSSIM 实现。 编译TOSSIM, 只需在 make 时加上可选的 sim 。如: make micaz sim 目前, micaz 是唯一被TOSSIM 支持的平台。 二、编译TOSSIM 二、编译TOSSIM 仔细观察上图中的编译过程,我们可以得出编译TOSSIM的5个步骤如下: 1. Writing an XML Schema, 编写 XML计划; 2. Compiling the TinyOS Application, 编译 TinyOS 程序; 3. Compiling the Programming Interface, 编译编程接口; 4. Building the Shared Object, 构建共用对象; 5. Copying Python Support. 复制 Python 支持。 2.1 编写XML计划 “writing XML schema to app.xml”生成的xml文件描述了这个应用程序,以及其中每个变量的名字和类型。 2.2 编译 TinyOS 应用 这意味着 先使用特定系统的仿真实现,然后是通用的 TOSSIM 仿真实现,再接着是 标准的实现。 这一步的产物是 目标文件 sim.o ,它位于平台的 build 目录下。这个目标文件含有一组C函数,其配置了仿真,并控制执行。 2.3 编译编程接口 这一步编译支持C++ 和 Python两个编程接口。 Python 接口实际上是建立在C++接口之上的。调用的 Python 对象会调用 C++ 对象,由其通过C 接口调用TOSSIM 。 2.4 构建共享对象 2.5 复制Python 脚本 三、 使用Python运行TOSSIM 以 RadioCountToLeds 应用程序为例,构建TOSSIM仿真。 /opt/tinyos-2.x/apps/RadioCountToLeds Python脚本的第一行通常是: 第1件事是:导入 TOSSIM 并创建一个TOSSIM 对象。 运行TOSSIM仿真的方法是用runNextEevent 函数。例如: 这段代码将会告诉节点32 在45654时间标记点启动(仿真时间标记 simulation tick) ,然后运行它的第1个事(booting)。 为了不使用原始的仿真时间标记为单位
文档评论(0)