Lesson1---TinyOS入门1讲解.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lesson1---TinyOS入门1讲解

22 随着传感器网络技术的发展,研究开发人员希望传感器网络节点能够提供更加具有普遍用途的功能,比如传感器硬件的管理、无线通信模块、I/O总线和诸如外部Flash这样的设备进行管理。 然而在应用程序的开发过程中,需要考虑到任务调度、能量管理和对资源限制的适应性等个方面的因素。因此,若要使得传感器节点能够提供上述功能,并且在提供的这些功能之间达到协调,就需要运行操作系统。为此,研究人员开发设计出了TinyOS操作系统。 TinyOS操作系统是UC Berkeley(加州大学伯克利分校)开发的开源操作系统,专门为嵌入式无线传感器网络设计,该操作系统基于组件(Component-Based)的架构使得程序能快速更新,同时又减小了受传感器网络节点存储器限制的代码长度。 一般而言,TinyOS操作系统的组件分为3种类型 :硬件抽象组件,合成硬件组件和高层软件组件。硬件抽象组件对物理硬件设备进行了TinyOS的组件化。在TinyOS系统平台中,每个硬件资源都被抽象成一个或多个易于操作的组件,用户程序访问这些资源时只需调用对应组件相应的功能接口,即可实现对硬件的操作。 合成硬件组件所起到的作用即为将硬件抽象组件与高层软件组件进行连接。它可以利用硬件抽象组件提供的接口实现高于硬件抽象组件的功能,比如对字节的发送与接收。高层的软件组件实现了对整个系统的控制、建立路由和数据传输等。多个下层组件可以连接起来构成上一层更大的组件,而最上层的组件就是应用程序 TinyOS 提供任务和事件的两级调度机制。任务一般用于对时间要求不高的应用,它实际上是一种延时计算机制。任务之间互相平等,没有优先级之分,所以任务的调度采用简单的FIFO。 硬件事件处理句柄去响应硬件中断,它可以抢占任务或者其他的硬件事件处理句柄。当事件被触发后,与该事件相关联的所有任务迅速被执行,当这个事件和任务被处理完成之后,CPU 进入睡眠状态,直至其他事件将它唤醒。 总的来说,TinyOS 调度模型有以下特点: (1)任务单线程运行到结束,仅分配单个任务栈,这对内存受限系统很有利。 (2)任务调度算法采用非抢占式的FIFO 算法,任务之间相互平等,没有优先级之分。 (3)TinyOS 的调度策略具有能量意识,当任务队列为空时,处理器进入休眠模式,直到外部事件将它唤醒,能有效的降低系统能耗。 (4)这种基于事件的调度策略,允许独立的组件共享单个执行的上下文, 只需少量运行空间就能获得高度的并发性。 介绍TinyOS系统的一些基本概念:组件(components),模块(modules),配件 (configurations)和接口( interfaces)。 如何编译和安装一个TinyOS程序在一个mote节点上。 以Blink为例介绍一个简单的应用程序是如何组建起来的。 运行环境:TinyOS 2.1 + Cygwin (Windows XP) Cygwin在Windows下提供一个类似Linux的环境 一、编译和安装 作为一开始的学习,先来编译一个非常简单的程序 Blink。若没有硬件节点,可以用TinyOS的TOSSIM仿真平台进行编译运行。 编译TinyOS程序使用make命令,TinyOS系统有一个强大的扩展性很强的make 系统,位于 tinyos-2.x/support/make目录中。 先运行如下命令检查环境是否正确配置。 $ tos-check-env makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具 。 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。 一、编译和安装 接下来要检查TinyOS系统是否正常启用。 $ printenv MAKERULES 1.1 确认 nesc语言的ncc编译器的版本 nesC语言是TinyOS使用的语言,而ncc是对gcc的扩展,专门用来编译nesC应用程序。 可输入 which ncc来查看系统调用的是哪个ncc编译器,会跳出该ncc的文件位置,再输入该文件目录的 –version选项命令,得到其版本号。 1.2 在mica系列节点上下载程序 micaz 节点+串口编程辅助

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档