第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的折磨。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章