2024年2月26日发(作者:)
一. TinyOS安装
官方说明:
/tinyos-2.x/doc/html/
//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 下载地址: /javase/downloads/
下载的默认文件名为: / jdk-1_5_
安装过程只需下一步……下一步便可……
然后,我们需要设置电脑的环境变量,需要新建两个环境变量,以便使用JDK
具体过程如下:
右击我的电脑——〉属性——〉高级——〉环境变量——〉
系统变量(S)栏——〉新建(W)——〉新建系统变量 对话框
如下图:
变量名(N):JAVA_HOME
变量值(V):JDK安装的路径,默认路径为:C:Program FilesJavajdk1.6.0_10
C:Program FilesJavajdk1.5.0
变量名(N):CLASSPATH
变量值(V):
.;%JAVA_HOME%;%JAVA_HOME%;;%JAVA_HOME%bin;%JAVA_HOME%jrebin;
在用户变量的PATH中添加:;%JAVA_HOME%bin:$PATH;%JAVA_HOME%jerbin:$PATH;
在系统变量(S)栏选中变量为Path的选项,点编辑
在变量值(V)的末尾添加:;%JAVA_HOME%bin; ;%JAVA_HOME%jrebin;
系统变量里最好也同样再设置一个CLASSPATH。
这样,我们的环境变量已经设置完毕了。
我们可以编个JAVA小程序测试简单的测试一下:
打开记事本,输入下面这个小程序,另存为
public class HelloWorld {
public static void main(String[] args) {
n("Hello, World!");
}
}
运行cmd,到所在目录,执行
javac
java HelloWorld
如果能正确输出Hello, World! 说明环境变量设置成功。
2.Cygwin 软件平台安装
我们需要安装Cygwin这个软件模仿Linux平台,运行TinyOS-2.X。
下载地址:ftp://:19527/iso/
或者下载:包解压缩在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的快捷方式或者运行安装目录下的文件,来运行该软件平台:
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 hon tools
binutils
gcc
libc
jtag
gdb
yet available
Not yet available
下载地址:/tinyos-2.x/doc/html/
将rpm下载到到 “…/TinyOS21_tool/MSP430_Tools”文件夹下,运行:
$ cd …/TinyOS21_toolMSP430_Tools
rpm -ivh --ignoreos *.rpm
安装成功。(若提示安装不了,可以先安装TinyOS工具包再回头安装这里)
4.TinyOS 工具安装
同上,下载rpm包:
NesC
Deputy
tinyos-tools
将rpm下载到到 “…/TinyOS21_tool/ TinyOS_specific_tools”文件夹下,运行:
$ cd …/TinyOS21_tool TinyOS_specific_tools
rpm -ivh --ignoreos *.rpm
安装成功。
5.TinyOS2.X 安装
同上,下载rpm包:
将rpm下载到到 “…/TinyOS21_toolTinyOS_2.X”文件夹下,运行:
$ cd …/TinyOS21_toolTinyOS_2.X
rpm -ivh --ignoreos *.rpm
安装成功。
6.设置TinyOS2.X 环境变量
用UltraEdit创建C:,输入以下内容:(使用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:"
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/*-': No such file or directory
我们需要将以下目录中的,重命名为:
C:cygwinlibtinyos
C:Program FilesJavajdk1.6.0_10jrebin
——
重新tos-install-jni命令。
7.安装 Graphviz (版本1.1)
下载地址:/tos/dist-1.1.0/tools/windows/,安装到C:Program FilesATT目录下
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.进入目录:link
2.编写文件:C:
#! /usr/bin/python
from TOSSIM import *
import sys
t=Tossim([]);
nnel("BlinkC",)
e(1).bootAtTime(10000);
for i in range (0,100):
tEvent()
执行命令: $ make micaz sim 和 $ python 显示模拟结果。
如果看到如下错误提示:
"The procedure entry point basename could not be located in the dynamic link library
"
则需要重新检查、安装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/ -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 -lm
compiled BlinkAppC to build/telosb/
2650 bytes in ROM
55 bytes in RAM
msp430-objcopy --output-target=ihex build/telosb/ build/telosb/
writing TOS image
这里也许会出现一些问题,若是:
: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:修正如下
CFLAGS+=-l/path (添加这一行,路径改为usrincludepython2.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:estsTestSerial
执行:java TestSerial
如果没有设置端口号,则会出现一下提示:
sf@localhost:9002 died - exiting (tException: Connection refused:
connect)
执行以下命令:
java Forwarder -comm serial@
e.g.:java Forwarder -comm serial@COM1:telosb
java Forwarder -comm serial@/dev/ttyUSB0:mica2
然后再新的串口运行。
8.cvs更新tinyos-2.x文件
在cywin使用cvs更新tinyos-2.x文件
设置一个环境变量
export CVSROOT=:pserver:anonymous@:/cvsroot/tinyos
也可以不设置这个环境变量
在每个命令中带这个参数-d:pserver:anonymous@:/cvsroot/tinyos
接入命令
cvs -d:pserver:anonymous@:/cvsroot/tinyos login
When prompted for a password for anonymous, simply press the Enter key.回车就可以了,不用输入密码
更新命令
一般格式
cvs -z3 -d:pserver:anonymous@:/cvsroot/tinyos co -P modulename
1) cd /opt
如果在其他目录,会建立一个新的目录,下载的文件放到这个新的目录中
2) 变更原来的tinyos-2.x文件夹名到tinyos-2.x-old
输入命令
cvs -z3 -d:pserver:anonymous@:/cvsroot/tinyos co -P tinyos-2.x
注解:co实际是checkout命令的缩写,使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,
最新的tinyos-2.x会下载下来,在/opt中建立/tinyos-2.x文件夹
cvs -z3 -d:pserver:anonymous@:/cvsroot/tinyos checkout -P tinyos-2.x
3)cd tinyos-2.x
进入刚才更新的目录
4)更新现有的目录
cvs -d:pserver:anonymous@:/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


发布评论