您的当前位置:首页正文

TinyOS2.x安装

2021-12-01 来源:好走旅游网
一. 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)——〉新建系统变量 对话框 如下图:

变量名(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\ools.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(\"Hello, World!\"); } }

运行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,意思就是说把最新的版本下载下来安装 \"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 -R Blink BlinkSingle ls:显示文件。

whoami:显示登陆Windows帐号 uname –a: 显示版本信息

echo $PATH: 显示执行程式的搜索路径

ps ax: 显示process list ,显示目前有哪些process 执行 ctrl-D或exit 或logout:结束bash 视窗 motelist 查询当前设备 3.MSP430工具安装 rpm包如下: base

msp430tools-base-0.1-20050607.cygwin.i386.rpm

python tools msp430tools-python-tools-1.0-1.cygwin.noarch.rpm

binutils gcc libc jtag gdb

msp430tools-binutils-2.16-20050607.cygwin.i386.rpmmsp430tools-gcc-3.2.3-20050607.cygwin.i386.rpmmsp430tools-libc-20080808-1.cygwin.i386.rpm

Not yet available Not yet available

下载地址: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

安装成功。 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\inyos.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=\"/opt/tinyos-2.x\" export TOSDIR=\"$TOSROOT/tos\"

export CLASSPATH=\"C:\\cygwin\\opt\inyos-2.x\\support\\sdk\\java\inyos.jar\" export CLASSPATH=\"$CLASSPATH;.\"

export MAKERULES=\"$TOSROOT/support/make/Makerules\" export PATH=\"/opt/msp430/bin:$PATH\"

export PATH=\"/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin:$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\inyos

C:\\Program Files\\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:\\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=\"/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin:$PATH\"

2、检查己经让TinyOS buile system环境可运行的.

运行shell,输入如下命令: $ printenv MAKERULES

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

3.运行Blink测试程序:

1.进入目录:\\cygwin\\opt\inyos-2.x\\apps\\Blink

2.编写文件:C:\\cygwin\\opt\inyos-2.x\\apps\\Blink\\Blink.py #! /usr/bin/python from TOSSIM import * import sys t=Tossim([]);

t.addChannel(\"BlinkC.getNode(1).bootAtTime(10000); for i in range (0,100): t.runNextEvent()

执行命令: $ make micaz sim 和 $ python Blink.py 显示模拟结果。 如果看到如下错误提示:

\"The 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

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=\\\"BlinkAppC\\\" -DIDENT_USERNAME=\\\"石琛宇\\\" -DIDENT_HOSTNAME=\\\"s cy\\\" -DIDENT_USERHASH=0x71b2a242L -DIDENT_TIMESTAMP=0x4937fa3dL -DIDENT_UIDHASH= 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\inyos-2.x\\support\\make\\sim.extra修正如下 CFLAGS+=-l/path (添加这一行,路径改为\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\inyos-2.x\\apps\ests\\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 然后再新的串口运行。 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 update\" 的两个命令行选项。

\"-d\" 告诉 cvs 创建可能已添加到资源库的新目录(缺省情况下,这不会发生), \"-P\" 告诉 cvs 从本地已检出的源码副本中除去所有空目录。\"-P\" 是个不错的选择,因为 cvs 倾向于收集许多随时间产生的空(曾经使用过,但现在已经放弃)目录树。 cvs commit

因篇幅问题不能全部显示,请点此查看更多更全内容