tinyosnesc学习历程好.docx
- 文档编号:11168394
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:75
- 大小:308.32KB
tinyosnesc学习历程好.docx
《tinyosnesc学习历程好.docx》由会员分享,可在线阅读,更多相关《tinyosnesc学习历程好.docx(75页珍藏版)》请在冰点文库上搜索。
tinyosnesc学习历程好
WSN学习历程
目录
WSN学习历程1
一.TinyOS安装3
1.JAVEJDK安装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.6C语言)11
2.TinyOS子目录MAP12
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.验证BlinkToRadio30
10.与PC机的通信31
a.基本测试31
b.BaseStation和net.tinyos.tools.Listen33
c.MessageInterfaceGenerator(MIG)34
d.修改Makefile来添加Javapacketobject36
e.未看37
11.Sensing40
a.Sense:
40
b.Oscilloscope44
c.RunningtheJavaGUI45
12.Storage46
四.TinyOS底层粗略解读48
一.TinyOS安装
官方说明:
开发基础:
熟悉Linux环境及常用Linux命令;熟悉嵌入式系统开发流程;精通模块设计的思想;能深刻理解交叉编译和MAKE等概念;熟悉C,nesC两种编程语言;对C++,JAVA有一定了解;对ZigBee协议熟悉且具有一定的通信基础,能深刻理解地址、通道等概念。
1.JAVEJDK安装
首先,我们安装JAVE开发工具JAVEJDK:
JavaSEDevelopmentKit(JDK)5/6下载地址:
下载的默认文件名为:
jdk-6u10-windows-i586-p.exe/jdk-1_5_0-windows-i586.exe
安装过程只需下一步……下一步便可……
然后,我们需要设置电脑的环境变量,需要新建两个环境变量,以便使用JDK
具体过程如下:
右击我的电脑——〉属性——〉高级——〉环境变量——〉
系统变量(S)栏——〉新建(W)——〉新建系统变量对话框
如下图:
变量名(N):
JAVA_HOME
变量值(V):
JDK安装的路径,默认路径为:
C:
\ProgramFiles\Java\jdk1.6.0_10
C:
\ProgramFiles\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
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("Hello,World!
");
}
}
运行cmd,到HelloWorld.java所在目录,执行
javacHelloWorld.java
java HelloWorld
如果能正确输出Hello,World!
说明环境变量设置成功。
2.Cygwin软件平台安装
我们需要安装Cygwin这个软件模仿Linux平台,运行TinyOS-2.X。
下载地址:
ftp:
//:
19527/iso/cygwin2.510.2.2.iso
或者下载:
cygwin-files.zip包解压缩在c:
/cygwin-files,
安装过程说明:
安装时,最好先将安装包下载到本地,然后选择InstallfromLocalDirectory安装
紧接着需要设置安装目录,设置安装文件的本地储存路径(c:
/cygwin-files或其他)等。
安装包策略选择:
“Keep”、“Prev”、“Curr”、“Exp”等等选项
Keep,意思就是说保持目前已经安装的版本不动,不替换你目前的版本。
升级时比较方便。
Prev,意思是说安装上一个版本。
Curr,意思就是说把最新的版本下载下来安装
"View"按钮是用来选择显示方式的
在选择安装包时候,我们需要选择:
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-RBlinkBlinkSingle
ls:
显示文件。
whoami:
显示登陆Windows帐号
uname–a:
显示版本信息
echo$PATH:
显示执行程式的搜索路径
psax:
显示processlist,显示目前有哪些process执行
ctrl-D或exit或logout:
结束bash视窗
motelist查询当前设备
3.MSP430工具安装
rpm包如下:
base
msp430tools-base-0.1-20050607.cygwin.i386.rpm
pythontools
msp430tools-python-tools-1.0-1.cygwin.noarch.rpm
binutils
msp430tools-binutils-2.16-20050607.cygwin.i386.rpm
gcc
msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm
libc
msp430tools-libc-20080808-1.cygwin.i386.rpm
jtag
Notyetavailable
gdb
Notyetavailable
下载地址:
将rpm下载到到“…/TinyOS21_tool/MSP430_Tools”文件夹下,运行:
$cd…/TinyOS21_tool\MSP430_Tools
rpm-ivh--ignoreos*.rpm
安装成功。
(若提示安装不了,可以先安装TinyOS工具包再回头安装这里)
4.TinyOS工具安装
同上,下载rpm包:
NesCnesc-1.3.0a-1.cygwin.i386.rpm
Deputytinyos-deputy-1.1-1.cygwin.i386.rpm
tinyos-toolstinyos-tools-1.3.0-1.cygwin.i386.rpm
将rpm下载到到“…/TinyOS21_tool/TinyOS_specific_tools”文件夹下,运行:
$cd…/TinyOS21_tool\TinyOS_specific_tools
rpm-ivh--ignoreos*.rpm
安装成功。
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保存)
(配置文件已经写好了)
#scriptforprofile.dforbashshells,adjustedforeachusers
#installationbysubstituting/optfortheactualtinyostree
#installationpoint.
exportTOSROOT="/opt/tinyos-2.x"
exportTOSDIR="$TOSROOT/tos"
exportCLASSPATH="C:
\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar"
exportCLASSPATH="$CLASSPATH;."
exportMAKERULES="$TOSROOT/support/make/Makerules"
exportPATH="/opt/msp430/bin:
$PATH"
exportPATH="/cygdrive/c/ProgramFiles/Java/jdk1.6.0_10/bin:
$PATH"
#Extendpathforjava
typejava>/dev/null2>/dev/null||PATH=`/usr/local/bin/locate-jre--java`:
$PATH
typejavac>/dev/null2>/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
如果出现一下错误信息:
Installing32-bitJavaJNIcodein/cygdrive/c/ProgramFiles/Java/jdk1.6.0_10/jr
e/bin...
install:
cannotstat`/usr/lib/tinyos/*-32.dll':
Nosuchfileordirectory
我们需要将以下目录中的toscomm.dll,重命名为:
toscomm-32.dll
C:
\cygwin\lib\tinyos
C:
\ProgramFiles\Java\jdk1.6.0_10\jre\bin
toscomm.dll——toscomm-32.dll
重新tos-install-jni命令。
7.安装Graphviz(版本1.1)
下载地址:
http:
//webs.cs.berkeley.edu/tos/dist-1.1.0/tools/windows/graphviz-1.10.exe,安装到C:
\ProgramFiles\ATT目录下
7.测试安装
1.环境测试:
运行cygwin,输入命令:
$tos-check-env
出现WARNING:
java1.4orjava1.5,tos-check-envcompletedwithouterror等
$whichjava
出现:
/cygdrive/c/ProgramFiles/Java/jdk1.6.0_10/bin/java
如果出现/cygdrive/c/WINDOWS/system32/java
则尝试输入:
exportPATH="/cygdrive/c/ProgramFiles/Java/jdk1.6.0_10/bin:
$PATH"
2、检查己经让TinyOSbuilesystem环境可运行的.
运行shell,输入如下命令:
$printenvMAKERULES
将看到:
/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
fromTOSSIMimport*
importsys
t=Tossim([]);
t.addChannel("BlinkC",sys.stdout)
t.getNode
(1).bootAtTime(10000);
foriinrange(0,100):
t.runNextEvent()
执行命令:
$makemicazsim和$pythonBlink.py显示模拟结果。
如果看到如下错误提示:
"Theprocedureentrypointbasenamecouldnotbelocatedinthedynamiclinklibrarycygwin1.dll"
则需要重新检查、安装nesC软件包。
3.运行make命令:
(可以是makemica2,maketelosb,ormakemicazsim…)
$ cd /opt/tinyos-2.x/apps/Blink
$ maketelosb
可以看到如下的输出:
mkdir-pbuild/telosb
compilingBlinkAppCtoatelosbbinary
ncc-obuild/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=\"BlinkAppC\"-DIDENT_USERNAME=\"石琛宇\"-DIDENT_HOSTNAME=\"s
cy\"-DIDENT_USERHASH=0x71b2a242L-DIDENT_TIMESTAMP=0x4937fa3dL-DIDENT_UIDHASH=
0xf51978b3LBlinkAppC.nc-lm
compiledBlinkAppCtobuild/telosb/main.exe
2650bytesinROM
55bytesinRAM
msp430-objcopy--output-target=ihexbuild/telosb/main.exebuild/telosb/main.ihex
writingTOSimage
这里也许会出现一些问题,若是:
BlinkAppC.nc:
46:
syntaxerrorbefore‘new’
Make:
***[exe0]Error1
则需要检查你的nesC编译器的版本,可能过时了,或者是你工具包没有安装好的问题。
用ncc--version进行查看
接下来
$whichncc
$/usr/local/bin/ncc–version
$/usr/bin/ncc–version
$nescc–version
$whichnescc
$/usr/bin/nescc–version
若出现这样的错误:
make:
***[sim-exe]Error1,则需修改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这个平台。
所以如果输入maketelosbsim,则会出现错误提示:
make:
***[sim-exe]Error2
4.运行java命令:
下载:
C:
\cygwin\opt\tinyos-2.x\apps\tests\TestSerial
执行:
javaTestSerial
如果没有设置端口号,则会出现一下提示:
sf@localhost:
9002died-exiting(.ConnectException:
Connectionrefused:
connect)
执行以下命令:
javanet.tinyos.sf.SerialForwarder-commserial@
e.g.:
javanet.tinyos.sf.SerialForwarder-commserial@COM1:
telosb
javanet.tinyos.sf.SerialForwarder-commserial@/dev/ttyUSB0:
mica2
然后再新的串口运行。
8.cvs更新tinyos-2.x文件
在cywin使用cvs更新tinyos-2.x文件
设置一个环境变量
exportCVSROOT=:
pserver:
anonymous@:
/cvsroot/tinyos
也可以不设置这个环境变量
在每个命令中带这个参数-d:
pserver:
anonymous@:
/cvsroot/tinyos
接入命令
cvs-d:
pserver:
anonymous@:
/cvsroot/tinyoslogin
Whenpromptedforapasswordforanonymous,simplypresstheEnterkey.回车就可以了,不用输入密码
更新命令
一般格式
cvs-z3-d:
pserver:
anonymous@:
/cvsroot/tinyosco-Pmodulename
1) cd/opt
如果在其他目录,会建立一个新的目录,下载的文件放到这个新的目录中
2) 变更原来的tinyos-2.x文件夹名到tinyos-2.x-old
输入命令
cvs-z3-d:
pserver:
anonymous@:
/cvsroot/tinyosco-Ptinyos-2.x
注解:
co实际是checkout命令的缩写,使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,
最新的tinyos-2.x会下载下来,在/opt中建立/tinyos-2.x文件夹
cvs-z3-d:
pserver:
anonymous@:
/cvsroot/tinyoscheckout-Ptinyos-2.x
3)cdtinyos-2.x 进入刚才更新的目录
4)更新现有的目录
cvs-d:
pserver:
anonymous@:
/cvsroot/tinyosupdate-dP
注意:
很多cvs命令都有缩写形式:
commit=>ci;update=>up;checkout=>co/get;remove=>rm;
cvscheckoutproject_name
cdproject_name
cvsupdate
将文件同步到最新的版本
cvsupdate
不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步
"cvsupdate"的两个命令行选项。
"-d"告诉cvs创建可能已添加到资源库的新目录(缺省情况下,这不会发生),
"-P"告诉cvs从本地已检出的源码副本中除去所有空目录。
"-P"是个不错的选择,因为cvs倾向于收集许多随时间产生的空(曾经使用过,但现在已经放弃)目录树。
cvscommit
二.TinyosOS构架
1.TinyOS早期版本简单学习(0.6C语言)
TinyOS是UCBerkeley开发的专门针对传感器网络节点的微型嵌入式操作系统。
早期的版本采用的是C语言,后来逐渐过渡到了nesC(Network-Embeded-System-C)。
由于考虑到了运行时的效率和程序空间占用率,TinyOS系统采用了静
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tinyosnesc 学习 历程