tinyos-nesc学习历程好~~~~~

更新时间:2023-11-26 12:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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@: e.g.:java net.tinyos.sf.SerialForwarder -comm serial@COM1:telosb

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

本文来源:https://www.bwwdw.com/article/r6nt.html

Top