TinyOS系统与nesC程序设计课内实验指导书(3)
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
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




