教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

TinyOS系统与nesC程序设计课内实验指导书(3)

来源:网络收集 时间:2026-07-10
导读: 8、 测试安装 1.环境测试: 运行cygwin,输入命令: $ tos-check-env 如果上述安装成功,可能会出现WARNING:java 1.4 or java1.5,tos-check-env completed without error等,这是JAVA版本的问题,不必理会。 $ wh

8、 测试安装 1.环境测试:

运行cygwin,输入命令: $ tos-check-env

如果上述安装成功,可能会出现WARNING:java 1.4 or java1.5,tos-check-env completed without error等,这是JAVA版本的问题,不必理会。

$ which java

正常情况出现:/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin/java 如果出现/cygdrive/c/WINDOWS/system32/java

则尝试输入:export PATH=\

2、检查己经让TinyOS build system环境可运行的. 输入如下命令:

$ printenv MAKERULES

如果看到:/opt/tinyos-2.x/support/make/Makerules 这是正确的

五 实验报告要求

①实验名称 ②实验内容说明 ③程序源代码

④实验步骤,实验中出现的问题,观察到的结果 ⑤实验总结

实验二:Blink——TinyOS编程的“Hello World”

一 实验目的

1、 掌握Linux基本命令及其使用。

2、 掌握安装应用程序到节点(如telosb)的方法。

3、 掌握nesC语言语法风格、组织、命名和连接组件的机制。 4、 掌握组件中命令(command)和事件(event)接口的使用。

5、 掌握模块(module)和配件(configuration)的作用及使用方法。

二 实验原理

TinyOS操作系统、库和程序服务程序是用nesC写的。 ◆ nesC是一种开发组件式结构程序的语言。

◆nesC是一种C语法风格的语言,但是支持TinyOS的并发模型,以及组织、命名和连接组件成为健壮的嵌入式网络系统的机制。

◇nesC应用程序是由有良好定义的双向接口的组件构建的。 ◇nesC定义了一个基于任务和硬件事件处理的并发模型,并能在编译时检测数据流组件。 ◆规范

◇nesC应用程序由一个或多个组件连接而成 ◇一个组件可以提供或使用接口

●组件中command接口由组件本身实现 ●组件中event接口由调用者实现

●接口是双向的,调用command接口必须实现其event接口 ◆实现

◇modules

●包含应用程序代码,实现接口 ◇configurations

●装配模块,连接模块使用的接口到其提供者

●每个nesC应用程序都有一个顶级configuration连接内部模块 ●并发模型

◆TinyOS只能运行单个由所需的系统模块和自定义模块构成的应用程序 ◆两个线程 ◇任务

●一次运行完成,非抢占式 ◇硬件事件处理 ●处理硬件中断

●一次运行完成,抢占式

●用于硬件中断处理的command和event必须用async关键字声明

◆执行流程(race conditions)

◇nesC要避免任务排他性访问共享数据

◇nesC要避免所有共享数据访问都通过原子语句

◇nesC在编译过程中要检测数据流,但可能误报,可用norace关键字声明不检测,但对其使用 应格外小心

三 实验环境

1、JDK1.6 for windows 2、Cygwin with TinyOS 2.x 3、UltraEdit / EditPlus

四 实验内容和步骤

1、实验内容:

(1) 进入tmp文件夹并创建文件夹,取名Blink,进入这个文件夹。

cd /tmp mkdir Blink cd Blink

(2) 定义一个Blink配件BlinkAppC.nc。

configuration BlinkAppC { }

implementation {

components MainC, BlinkC, LedsC;

components new TimerMilliC() as Timer0; components new TimerMilliC() as Timer1; components new TimerMilliC() as Timer2;

BlinkC -> MainC.Boot; BlinkC.Timer0 -> Timer0; BlinkC.Timer1 -> Timer1; BlinkC.Timer2 -> Timer2; BlinkC.Leds -> LedsC; }

(3) 定义一个Blink配件BlinkC.nc。

#include \

module BlinkC {

uses interface Timer as Timer0; uses interface Timer as Timer1; uses interface Timer as Timer2; uses interface Leds; uses interface Boot; }

implementation {

event void Boot.booted() {

call Timer0.startPeriodic( 250 );

call Timer1.startPeriodic( 500 ); call Timer2.startPeriodic( 1000 ); }

event void Timer0.fired() {

call Leds.led0Toggle(); }

event void Timer1.fired() {

call Leds.led1Toggle(); }

event void Timer2.fired() {

call Leds.led2Toggle(); } }

(4) 新建一个Makefile文件。

COMPONENT=BlinkAppC include $(MAKERULES)

(5)新建一个说明文档README(可选) (6)编译程序 make telosb

(7)下载到telosb节点,观察实验结果 make telosb reinstall.ID bsl,serialport. (8) 用nesdoc显示程序结构和配件组成,然后进入/tinyos-2.x/doc/nesdoc,打开index.html make telosb docs (9)编写实验报告

五 实验报告要求

①实验名称 ②实验内容说明 ③程序源代码

④实验步骤,实验中出现的问题,观察到的结果 ⑤实验总结

…… 此处隐藏:864字,全部文档内容请下载后查看。喜欢就下载吧 ……
TinyOS系统与nesC程序设计课内实验指导书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447636.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)