第1篇 安装

1.       自己曾经有一个月都在关注安装问题,必须在WIN XP32位下安装,中英文都可以。经过测试,在win vistawin7 64位(24G内存,必须用64位系统)下都失败了。其实主要是cygwin的原因。我使用的平台:

The hardware platform is Intel i7 950 with 24G memory (对,你没看错,不是2G,也不是4G就是二十四G的内存).

软件平台是Window 7 64bit 下挂VM模拟xp 32位,在xp 下挂Cygwin运行TinyOS 1.x.

同时安装了双系统,也有ubuntu,但一直没安装成功。

 

手头没有64位的xp,所以其实给虚拟机我也只是分配3G内存,分多了也没有意义(可惜了我的24G内存和X58的主板啊!)。我没有在4G以上的内存上运行过tinyos1.3,不知道在64位系统上,是否能有改观?或者tinyos1.x能不能支持64位?

我正在学习使用ubuntu10.04 64bit 去运行 tinyos1.x,但安装是个问题:

第一, 没有教程在linux 64位系统下安装tinyos1.x

第二, linux 64位下安装java都很痛苦

第三, SourceforgeCVS登录不上去,非常的痛苦。

有解决了的同学请不吝赐教,谢谢!

所以本blog当中,所有的实验,仿真,讨论都是基于xp Cygwin运行中TinyOS 1.x

 

2.       安装完成以后必须设置Javapathclasspath

Path 设置方法:Path变量的“编辑系统变量”对话框中,在“变量值”文本框中先输入一个“;”,接着输入JDK bin目录的路径(这里假设是C:/Program Files/Java/jdk1.5.0_06/bin),然后单击“确定”按钮即可完成设置。

 

Classpath设置方法:有几个方法可以设置Classpath,最简单的方法是在系统变量中新增Classpath环境变量。在“系统变量”下单击“新建”按钮,在“变量名”文本框中输入Classpath,在“变量值”文本框中输入Java类文件的位置。例如可以输入“.;C:/Program Files/Java/jdk1.5.0_06/lib/tools.jar; C:/Program Files/Java/jdk1.5.0_06/lib/rt.jar(jar文件是zip压缩格式,其中包括.class文件和jar中的Classpath设置),每一路径中间必须以;作为分隔。

 

3.       用如下命令来测试安装:

$ cd /opt/tinyos-1.x/tools/scripts

$ ./toscheck

在这里多说一句:

使用toscheck检查,最常见的问题是会出现没法使用其自带的Java编译环境的情况。一般来说是Java编译环境的问题,会提示一个Warning,说java编译版本不对之类的。你电脑本身已经安装过java或者已经有了别的版本的java编译器。如果你烦这个warning,可以按照如下步骤解决:第一,删掉所有Windows平台上已经安装的Java编译环境的环境变量设置,第二,在Path里添加Cygwin自带的Java编译环境的路径,如C:/Program Files/UCB/jdk1.4.1_02/j2sdk1.4.1_02/bin,添加时注意将它添加在Path所有变量值的最开始。 不过根据我的经验来说,没有必要。我的java1.5tinyos1.x在一起工作的好好的,没什么问题。不过听说java1.6就不是那么好了,但是具体到兼容性错误,我还没遇到过。

 

4.       测试blink

1号窗口中输入

进入blink的目录 cd opt/tinyos-1.x/apps/blink

编译在pc平台上 make pc

使用该命令让debug的结果显示在LED export DBG=led

进入该目录,并执行main.exe开始模拟程序 ./build/pc/main.exe –gui 2

 

2号窗口中输入

找到tinyviz程序的位置cd opt/tinyos-1.x/tools/Java/net/tinyos/sim

编译一下tinyviz make

执行./tinyviz 就可以看到运行结果了。

 

5.       tinyviz可能会出现 TOSmag 找不到的情况(从而出现tinyviz能显示节点,但是不会闪动)对于tinyviz中无法显示节点的变化的问题:采用如下方式解决

修改C:/Program Files/UCB/cygwin/opt/tinyos-1.x/tools/java/net/tinyos/sim下的makefile文件,建议用UltraEdit打开。

 

 

                net/tinyos/packet/*.class               /

                net/tinyos/message/*.class              /

                net/tinyos/message/avrmote/*.class              / 新加入行!

                org/apache/oro/text/regex/*.class       /

                org/python/compiler/*.class             /

               

                不然在tinyviz中无法显示接点的变化!!!

               

个人的一点感触!!!

选择系统版本的艰难抉择:

当然,学习和使用新软件和新语言, 一般都是选取最新的语言版本。学会了新的,自然老的也就是明白。毕竟新版本是在老版本上面发展而来,只会的对老的进行改进和修正,并给予强化。但是tinyos却彻底颠覆我的这个传统观念,tinyos1.x2.0编译方式和代码使用方式都是不兼容的!也就是说tinyos1.x2.x的代码是绝对不能混用的。说难听点,可以认为这是两种不同的语言。

 

在初学tinyos的时候,选择的是2.0 两个重要的原因, 第一是导师推荐,第二是相对1.x而言,tinyos2.0有官方正式出版的教材。但是由于tinyos本身非常难上手,加上2.0中运行TOSSIM的时候非常的痛苦,需要使用Python(当时还不知道这个是什么,以为是另外一种专门的语言)去定义很多实验参数,撰写实验脚本,更重要的是没有图形界面(tinyviz),即使模拟成功也是没有什么可见的成果。当时的我,连nesc源程序都看不懂,更不要说去编写python的脚本程序来控制模拟。浑浑噩噩的花了半个多学期去熟悉tinyos2.0 发现自己什么都没有学会,而且什么都没有做出来,挫败感极强。甚至开始怀疑自己的能力,还有考虑自己能不能毕业。压力极大。

 

在不得已的情况下,转回到tinyos1.x,发现1.x比较容易上手,而且相对来说入门,安装也比较容易(虽然其实还是极难),但至少有all in one install包。安装成功以后,轻松就成功模拟出blink,看着图形界面中节点上红色闪烁,心中的满足感由生。所以选择从tinyos-1.x学起。注意:这里说的是“学起”,换句话说,以后可能还是逃不了tinyos2.0的折磨。

你可能感兴趣的:(TinyOS学习)