tinyos-nesc学习历程好~~~~~
更新时间:2023-11-26 12:40:01 阅读量: 教育文库 文档下载
- tinyos哪里开发推荐度:
- 相关推荐
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
WSN学习历程
目录
WSN学习历程 .................................................................................................................. 1 一. TinyOS安装 ............................................................................................................. 3
1.JAVE JDK 安装 ...................................................................................................... 3 2.Cygwin 软件平台安装 .......................................................................................... 4 3.MSP430工具安装................................................................................................. 6 4.TinyOS 工具安装.................................................................................................. 6 5.TinyOS2.X 安装 .................................................................................................... 7 6.设置TinyOS2.X 环境变量 ..................................................................................... 7 7.安装 Graphviz (版本1.1) ....................................................................................... 8 7.测试安装 ............................................................................................................. 8 8.cvs更新tinyos-2.x文件....................................................................................... 10 二. TinyosOS 构架 ....................................................................................................... 11
1.TinyOS 早期版本简单学习(0.6 C语言) ......................................................... 11 2.TinyOS 子目录MAP ........................................................................................... 12 3.TinyOS 概念解释................................................................................................ 13 4.系统结构 ........................................................................................................... 14 三. TinyOS简单使用 ................................................................................................... 16
1.TinyOS入门(从Blink说起) ............................................................................. 16
2.Blink进一步解读 ................................................................................................ 21 3.用于处理应用数据的任务(Tasks使用)............................................................. 23 4.模块内部函数之间的调用 ................................................................................... 24 5.无线通信入门 .................................................................................................... 24 6.编写简单例程BlinkToRadio的框架 ...................................................................... 26 7.给BlinkToRadio添加发送功能 ............................................................................. 27 8.给BlinkToRadio添加接收功能 ............................................................................. 29 9.验证BlinkToRadio ............................................................................................... 30 10.与PC机的通信................................................................................................. 31
a.基本测试 .................................................................................................... 31 b.BaseStation 和net.tinyos.tools.Listen ............................................................ 33 c. Message Interface Generator(MIG) ................................................................ 34 d. 修改Makefile来添加Java packet object ....................................................... 36 e. 未看 .......................................................................................................... 37 11.Sensing............................................................................................................. 40
a.
Sense: ....................................................................................................... 40 b. Oscilloscope ............................................................................................... 44 c. Running the Java GUI................................................................................... 45 12.Storage ............................................................................................................. 46
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
四. TinyOS底层粗略解读 ............................................................................................ 48
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
一. TinyOS安装
官方说明:
http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html
http://docs.tinyos.net/index.php/Installing_TinyOS_2.1#Manual_installation_on_your_host_OS_with_RPMs
开发基础:熟悉Linux环境及常用Linux命令;熟悉嵌入式系统开发流程;精通模块设计的思想;能深刻理解交叉编译和MAKE等概念;熟悉C,nesC两种编程语言;对C++,JAVA有一定了解;对ZigBee协议熟悉且具有一定的通信基础,能深刻理解地址、通道等概念。 1.JAVE JDK 安装
首先,我们安装JAVE 开发工具JAVE JDK :
Java SE Development Kit (JDK) 5/6 下载地址: http://java.sun.com/javase/downloads/index.jsp 下载的默认文件名为:jdk-6u10-windows-i586-p.exe / jdk-1_5_0-windows-i586.exe 安装过程只需下一步??下一步便可??
然后,我们需要设置电脑的环境变量,需要新建两个环境变量,以便使用JDK 具体过程如下:
右击我的电脑——〉属性——〉高级——〉环境变量——〉 系统变量(S)栏——〉新建(W)——〉新建系统变量 对话框 如下图:
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
变量名(N):JAVA_HOME
变量值(V):JDK安装的路径,默认路径为:C:\\Program Files\\Java\\jdk1.6.0_10 C:\\Program Files\\Java\\jdk1.5.0
变量名(N):CLASSPATH 变量值(V):
.;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;;%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin;
在用户变量的PATH中添加:;%JAVA_HOME%\\bin:$PATH;%JAVA_HOME%\\jer\\bin:$PATH; 在系统变量(S)栏选中变量为Path的选项,点编辑
在变量值(V)的末尾添加:;%JAVA_HOME%\\bin; ;%JAVA_HOME%\\jre\\bin; 系统变量里最好也同样再设置一个CLASSPATH。 这样,我们的环境变量已经设置完毕了。 我们可以编个JAVA小程序测试简单的测试一下:
打开记事本,输入下面这个小程序,另存为HelloWorld.java
public class HelloWorld {
public static void main(String[] args) { System.out.println(\ } }
运行cmd,到HelloWorld.java所在目录,执行 javac HelloWorld.java java HelloWorld
如果能正确输出Hello, World! 说明环境变量设置成功。 2.Cygwin 软件平台安装
我们需要安装Cygwin这个软件模仿Linux平台,运行TinyOS-2.X。 下载地址:ftp://soft.coolersky.com:19527/iso/cygwin2.510.2.2.iso 或者下载:cygwin-files.zip包解压缩在c:/cygwin-files,
安装过程说明:
安装时,最好先将安装包下载到本地,然后选择Install from Local Directory安装
紧接着需要设置安装目录,设置安装文件的本地储存路径(c:/cygwin-files或其他)等。
安装包策略选择:“Keep”、“Prev”、“Curr”、“Exp”等等选项
Keep, 意思就是说保持目前已经安装的版本不动,不替换你目前的版本。升级时比较方便。 Prev,意思是说安装上一个版本。
Curr,意思就是说把最新的版本下载下来安装 \按钮是用来选择显示方式的
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
在选择安装包时候,我们需要选择:
Archive,Devel(gcc、make等编译工具),Libs,Net,Shells,Utils(rpm等命令) 等等
其中安装方式共有这么几类:
(1)Default:这是默认选择,可点击包左边的+号展开,看看缺省安装究竟是些什么内容。 (2)Install:表示要下载/安装该包的全部内容。 (3)Reinstall:表示重新下载/安装该包的内容 (4)Uninstall:卸载。
剩下的,和一般软件一样,没什么好说的了。
最后我们可以通过桌面上添加Cygwin的快捷方式或者运行安装目录下的cwgwin.bat文件,来运行该软件平台:
Cygwin启动界面如下图:
下面我们可以先来尝试一些简单的Linux命令:
help: 帮助命令。例如 ls --help 。显示ls命令使用说明。
pwd:显示所在路径。
rpm –qa :查看已经安装的程序,刚安装的Cygwin是没有安装任何系统的。 rpm –ivh 文件名:rpm文件安装。
rpm –ignoreos –force或者rpm -ivh --force --ignoreos:忽略错误,安装rpm文件 --ignoreos选项是用于忽略cygwin的版本号 cd:切换目录 比如:cd /tmp 进入tmp文件。 cp:cp -R Blink BlinkSingle
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
ls:显示文件。
whoami:显示登陆Windows帐号 uname –a: 显示版本信息
echo $PATH: 显示执行程式的搜索路径
ps ax: 显示process list ,显示目前有哪些process 执行 ctrl-D或exit 或logout:结束bash 视窗 motelist 查询当前设备 3.MSP430工具安装 rpm包如下: base binutils gcc libc jtag gdb
msp430tools-base-0.1-20050607.cygwin.i386.rpm msp430tools-binutils-2.16-20050607.cygwin.i386.rpm msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm msp430tools-libc-20080808-1.cygwin.i386.rpm Not yet available Not yet available
python tools msp430tools-python-tools-1.0-1.cygwin.noarch.rpm
下载地址:http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html
将rpm下载到到 “?/TinyOS21_tool/MSP430_Tools”文件夹下,运行: $ cd ?/TinyOS21_tool\\MSP430_Tools rpm -ivh --ignoreos *.rpm
安装成功。(若提示安装不了,可以先安装TinyOS工具包再回头安装这里) 4.TinyOS 工具安装 同上,下载rpm包:
NesC nesc-1.3.0a-1.cygwin.i386.rpm
Deputy tinyos-deputy-1.1-1.cygwin.i386.rpm tinyos-tools tinyos-tools-1.3.0-1.cygwin.i386.rpm
将rpm下载到到 “?/TinyOS21_tool/ TinyOS_specific_tools”文件夹下,运行: $ cd ?/TinyOS21_tool\\ TinyOS_specific_tools rpm -ivh --ignoreos *.rpm
安装成功。
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
5.TinyOS2.X 安装 同上,下载rpm包:
tinyos-2.1.0-2.cygwin.noarch.rpm
将rpm下载到到 “?/TinyOS21_tool\\TinyOS_2.X”文件夹下,运行: $ cd ?/TinyOS21_tool\\TinyOS_2.X rpm -ivh --ignoreos *.rpm
安装成功。
6.设置TinyOS2.X 环境变量
用UltraEdit创建C:\\cygwin\\etc\\profile.d\\tinyos.sh,输入以下内容:(使用UNIX换行符-LF保存) (配置文件已经写好了)
# script for profile.d for bash shells, adjusted for each users # installation by substituting /opt for the actual tinyos tree # installation point.
export TOSROOT=\export TOSDIR=\
export CLASSPATH=\export CLASSPATH=\
export MAKERULES=\export PATH=\
export PATH=\
# Extend path for java
type java >/dev/null 2>/dev/null || PATH=`/usr/local/bin/locate-jre --java`:$PATH type javac >/dev/null 2>/dev/null || PATH=`/usr/local/bin/locate-jre --javac`:$PATH echo $PATH | grep -q /usr/local/bin || PATH=/usr/local/bin:$PATH
执行命令: tos-install-jni 如果出现一下错误信息:
Installing 32-bit Java JNI code in /cygdrive/c/Program Files/Java/jdk1.6.0_10/jr e/bin ...
install: cannot stat `/usr/lib/tinyos/*-32.dll': No such file or directory 我们需要将以下目录中的toscomm.dll,重命名为:toscomm-32.dll C:\\cygwin\\lib\\tinyos
C:\\Program Files\\Java\\jdk1.6.0_10\\jre\\bin toscomm.dll ——toscomm-32.dll 重新tos-install-jni命令。
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
7.安装 Graphviz (版本1.1)
下载地址:http://webs.cs.berkeley.edu/tos/dist-1.1.0/tools/windows/graphviz-1.10.exe,安装到C:\\Program Files\\ATT目录下 7.测试安装 1.环境测试:
运行cygwin,输入命令: $ tos-check-env
出现WARNING:java 1.4 or java1.5,tos-check-env completed without error等 $ which java
出现:/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin/java
如果出现/cygdrive/c/WINDOWS/system32/java
则尝试输入:export PATH=\
2、检查己经让TinyOS buile system环境可运行的. 运行shell,输入如下命令:
$ printenv MAKERULES
将看到:/opt/tinyos-2.x/support/make/Makerules 这是正确的
3.运行Blink测试程序:
1.进入目录:\\cygwin\\opt\\tinyos-2.x\\apps\\Blink
2.编写文件:C:\\cygwin\\opt\\tinyos-2.x\\apps\\Blink\\Blink.py #! /usr/bin/python from TOSSIM import * import sys
t=Tossim([]);
t.addChannel(\t.getNode(1).bootAtTime(10000); for i in range (0,100):
t.runNextEvent()
执行命令: $ make micaz sim 和 $ python Blink.py 显示模拟结果。
如果看到如下错误提示:
\procedure entry point basename could not be located in the dynamic link library cygwin1.dll\
则需要重新检查、安装nesC软件包。
3.运行make命令:(可以是make mica2,make telosb , or make micaz sim…) $ cd /opt/tinyos-2.x/apps/Blink $ make telosb
可以看到如下的输出: mkdir -p build/telosb
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
compiling BlinkAppC to a telosb binary
ncc -o build/telosb/main.exe -Os -O -mdisable-hwmul -Wall -Wshadow -Wnesc-all - target=telosb -fnesc-cfile=build/telosb/app.c -board= -DDEFINED_TOS_AM_GROUP=0x2
2 -DIDENT_APPNAME=\\\石琛宇\\\cy\\\0xf51978b3L BlinkAppC.nc -lm
compiled BlinkAppC to build/telosb/main.exe 2650 bytes in ROM 55 bytes in RAM
msp430-objcopy --output-target=ihex build/telosb/main.exe build/telosb/main.ihex
writing TOS image
这里也许会出现一些问题,若是:
BlinkAppC.nc:46:syntax error before ‘new’
Make:*** [exe0] Error 1
则需要检查你的nesC编译器的版本,可能过时了,或者是你工具包没有安装好的问题。 用ncc --version进行查看 接下来 $ which ncc
$/usr/local/bin/ncc –version $ /usr/bin/ncc –version
$ nescc –version $ which nescc
$ /usr/bin/nescc –version 若出现这样的错误:make: *** [sim-exe] Error 1,则需修改Python.h的默认路径:/usr/include 打开C:\\cygwin\\opt\\tinyos-2.x\\support\\make\\sim.extra修正如下 CFLAGS+=-l/path (添加这一行,路径改为\%usr\\include\\python2.5,) WFLAGS = -Wno-nesc-data-race
PYTHON_VERSION=2.5($python –V 查看版本后再修改)
注意:TOSSIM 只支持micaz这个平台。所以如果输入make telosb sim,则会出现错误提示:make: *** [sim-exe] Error 2
4.运行java命令:
下载:C:\\cygwin\\opt\\tinyos-2.x\\apps\\tests\\TestSerial 执行:java TestSerial
如果没有设置端口号,则会出现一下提示:
sf@localhost:9002 died - exiting (java.net.ConnectException: Connection refused: connect)
执行以下命令:
java net.tinyos.sf.SerialForwarder -comm serial@
java net.tinyos.sf.SerialForwarder -comm serial@/dev/ttyUSB0:mica2 然后再新的串口运行。
WSN学习历程 Written By Aston (Aston is my first English name ) 作者:SCY
8.cvs更新tinyos-2.x文件
在cywin使用cvs更新tinyos-2.x文件 设置一个环境变量
export CVSROOT=:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos 也可以不设置这个环境变量
在每个命令中带这个参数-d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos 接入命令
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login
When prompted for a password for anonymous, simply press the Enter key.回车就可以了,不用输入密码 更新命令 一般格式
cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P modulename
1) cd /opt
如果在其他目录,会建立一个新的目录,下载的文件放到这个新的目录中 2) 变更原来的tinyos-2.x文件夹名到tinyos-2.x-old 输入命令
cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x 注解:co实际是checkout命令的缩写,使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,
最新的tinyos-2.x会下载下来,在/opt中建立/tinyos-2.x文件夹
cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos checkout -P tinyos-2.x 3)cd tinyos-2.x 进入刚才更新的目录
4)更新现有的目录
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos update -dP
注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm; cvs checkout project_name cd project_name
cvs update
将文件同步到最新的版本
cvs update
不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步 \的两个命令行选项。
\告诉 cvs 创建可能已添加到资源库的新目录(缺省情况下,这不会发生), \告诉 cvs 从本地已检出的源码副本中除去所有空目录。\是个不错的选择,因为 cvs 倾向于收集许多随时间产生的空(曾经使用过,但现在已经放弃)目录树。 cvs commit
正在阅读:
遗传算法原理步骤及发展状况和未来趋势11-26
申论原因和对策分析(精华)05-16
新版8AUnit6(birdwatching)单元测验附答案04-07
党员活动经费如何列支问题07-04
学生共建清洁美丽世界环境日作文模板04-04
登华山有感作文700字07-02
试航船舶操作程序手册试09-15
旅游作文100字03-31
园林树木学复习思考题10-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 历程
- tinyos
- 学习
- nesc
- 所谓水质指标是用以评价一般淡水水域海水水域特性的重要参数
- 轻型井点问题汇总
- 电子证据的审查与辩护
- 医学分子生物学考试必会考题
- 美德少年评选表彰通知
- 瓮安县岚关乡大坪煤矿
- 艾滋病疫情监测管理制度
- 2018年翻硕备考:T开头常见词汇表
- 酶工程思考题汇总
- 远东仪化石化扬州有限公司
- 2018-2019年初中物理鲁教版《八年级下》《第十章 机械能及其转化》《第三节 机械能及其转化》单
- 转发关于进一步加强学校食堂食品安全工作的通知
- 国家重点公益林监测细则
- 硫酸链霉素的水解
- 遗传算法原理步骤及发展状况和未来趋势
- 2019生物一轮复习 选练编题(2)(含解析)新人教版
- 辅导员考试资料
- 第三章 化学反应速率和化学平衡答案
- 浙江省湖州市2016-2017学年高二下学期期末调研测试地理试题 - 图文
- 教育学论述题