新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CC2430單片機的TinyOS移植(windows平臺)

        CC2430單片機的TinyOS移植(windows平臺)

        作者: 時間:2016-11-28 來源:網絡 收藏
        CC2430單片機TinyOS移植windows平臺)_柘林的石老人_新浪博客

        注:如果對CC2430和TinyOS不甚了解,請跳過這篇文章

        本文引用地址:http://www.104case.com/article/201611/322869.htm

        本文發表在PSYcHic

        原文地址為:如需轉載請保留這個網址 謝謝!

        現在國內做WSN研究的人越來越多了。在硬件方面,我們國內不像國外那樣擁有很多硬件開發平臺可以供我們選擇。而且,crossbow的專業開發平臺價格非常昂貴。不過隨著越來越多的公司開始關注WSN,zigbee,我們現在還是有可能在千元之內就搭建出來一套自己的無線傳感器開發系統。

        CC2430是現在較為理想的硬件平臺。在國內,大多數人還是使用IAR結合z-stack協議棧(或者是變種的xx龍版)進行開發。z-stack協議棧開發比較簡便,很適合新手使用。但是如果你是搞學術研究,需要深入研究組網及相關算法開發的話,那么UC Berkely的TinyOS才是最佳的選擇。(我相信聰明的人不會去淌z-stack的OSAL的渾水吧….)

        很多人已經成功將TinyOS移植到了CC2430上了。但是目前在網上似乎找不到有比較詳細操作步驟的文章。那么我來給大家科普下吧:)

        —-

        首先,我們要往CC2430上移植的是TinyOS 2.x版本。如果你英文好的話直接前往下面這里查看相關資料

        TinyOS2.x for 8051目前支持三種編譯器——Keil,IAR,sdcc 我們采用的編譯器是Keil——這個大家都比較熟悉。TinyOS 2.x 是必須在Linux平臺下才能工作的,而Keil則是一個windows下的軟件,所以我們必須要先安裝一個在windows下面模擬linux的軟件——Cygwin。

        硬件:CC2430節點,仿真器

        軟件:Cygwin,Keil,TinyOS 2.x,一些相關的環境設置包,SmartRF04 Flash Programmer

        硬件就是原來在IAR下能正常使用的CC2430開發硬件就OK(不管是無線龍的,華凡的,微骨的都行)

        軟件我需要說下:

        TinyOS 2.x : 請到這里下載最新版本 (本文是根據 26 Oct 2008 這個版本進行的介紹)

        Keil:請安裝好,記住一定要安裝沒有2K限制的版本。

        0、安裝Keil ——Keil是現在單片機開發必備的軟件了,網上資料一大堆,我就省略了。自己安裝好就可以了。

        1、安裝Java 1.5 JDK

        下載地址

        如果你做Java開發,以前安裝過的話就可以跳過這一步了。

        2、安裝Cygwin

        請安裝TinyOS推薦使用的版本。不少人在后面遇到各種詭異的問題就是因為Cygwin安裝不當,缺少一些必要的組件。

        你可以去:

        下載這個版本的Cygwin。

        如果鏈接失效,請前往TinyOS官方的wiki尋找其推薦的Cygwin版本:

        安裝過程很簡單,一路next下去就OK,不過請記住你安裝的位置。本文默認是安裝到C盤下。

        3、下載TinyOS開發必備的編譯工具的安裝包(一共4個)

        NesC編譯工具:

        TinyOS相關工具:

        4、啟動Cygwin,并在Cygwin下安裝上面下載好的rpm包

        雙擊圖標即可啟動Cygwin。 正常啟動后應該會有”$”標識符和光標。

        我們要安裝rpm包,就要首先切換到rpm包存放的目錄下。如果你熟悉Linux,那么自己安裝就行。如果不是的話,按照我所說的一步一步來。

        1)首先找到你安裝Cygwin的目錄,如果是默認安裝的話就是C:Cygwin

        2)進入目錄,發現里面有/bin /var /etc /opt /home等文件夾,Linux系統下的根目錄就是這個樣子啦。

        我們雙擊home文件夾,發現里面又有另外一個文件夾,起的是你安裝時設置的用戶名稱,假設你叫做quake(請替換為你自己的用戶名)?,F在進入C:Cygwinhomequake下面

        好了,當我們一啟動Cygwin,程序的終端窗口默認也是停留在/home/quake下面。下面我們需要把剛剛下載的4個rpm包拷貝到C:Cygwinhomequake這個文件夾下面。

        之后在Cygwin終端下輸入

        ls

        按回車后,你會發現終端的窗口里顯示了你剛剛拷過去的rpm包的名字。(更多Linux bash命令請參考Linux資料)

        下面需要一個一個安裝

        輸入

        rpm -ivh nesc-1.3.0-1.cygwin.i386.rpm
        rpm -ivh tinyos-tools-1.3.0-1.cygwin.i386.rpm
        rpm -ivh tinyos-deputy-1.1-1.cygwin.i386.rpm
        rpm -ivh tinyos-2.1.0-1.cygwin.noarch.rpm

        每輸入一行,按一次回車,我們就把對應的rpm包給安裝好啦。把4個rpm包都安裝好后就可以進行下一步了。

        5、安裝TinyOS 2.x

        將下載好的TinyOS 2.x的安裝包給解壓縮(如TinyOS8051wg-0.1pre4.tgz),解壓縮用winrar就可以。

        將解壓好的tinyos-2.x-contrib這個文件夾拷貝到C:Cygwinopt 下

        好了。我們已經把TinyOS的開發環境基本搭建好了。

        下面我們實際編譯個程序吧!

        首先在Cygwin下面輸入

        cd /opt

        ls

        你可以看到opt目錄下有你剛剛拷貝過去的tinyos-2.x-contrib文件夾,繼續輸入

        cd tinyos-2.x-contrib/

        我們查看下該目錄下面有什么

        ls

        發現有個diku文件夾

        下面輸入

        source diku/env

        說明:diku文件夾下面有個env配置文件,我們通過source 命令加載下,這樣后面編譯的時候編譯器就知道我們要使用什么樣的配置去編譯了。關于env配置文件的具體內容稍后介紹。我們用Keil編譯,保持其默認狀態就可以了。

        之后我們就可以編譯了,所有的例子在tinyos-2.x-contrib/diku/common/apps/下面,我們以BlinkNoTimerTask為例

        輸入

        cd /diku/common/apps/BlinkNoTimerTask

        make cc2430em

        如果一切正常的話,你會看到:

        GENERATING INTEL HEX FILE: app.hex
        compiled BlinkNoTimerTaskAppC to a cc2430em binary
        Code size of app.o
        MODULE INFORMATION:STATIC OVERLAYABLE
        CODE SIZE=635—-
        CONSTANT SIZE=—-—-
        XDATA SIZE=49
        PDATA SIZE=—-—-
        DATA SIZE=—-—-
        IDATA SIZE=—-—-
        BIT SIZE=—-—-
        Total sizes
        Program Size: data=9.0 xdata=10 const=0 code=694

        這段話,這表明你已經成功了!~

        好了,下面我們看看TinyOS生成了什么吧~

        C:cygwinopt inyos-2.x-contribdikucommonappsBlinkNoTimerTaskuildcc2430em

        這個目錄下面

        我們發現了其編譯生成的app.hex文件。現在只要把這個文件燒錄進單片機,我們就大功告成了!

        我們安裝下SmartRF04 Flash Programmer這個軟件,這個軟件一般購買仿真器的話都會在附送的光盤里面贈送,如果沒有的話網上搜索下吧,實在沒有給我發信索取下。

        之后我們插好仿真器,打開SmartRF04 Flash Programmer這個軟件,在system-on-chip的選項卡下

        將hex文件選擇為我們剛剛編譯好的那個,之后選擇“Perform actions”就可以順利燒寫了:)

        好了,如果一切正常,那么恭喜你已經將TinyOS成功移植到了CC2430上了。我們成功擺脫了IAR不斷升級的困擾和Z-stack,已經進入到了TinyOS的世界了。




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 枝江市| 孟津县| 临洮县| 沂水县| 乃东县| 广州市| 特克斯县| 娄底市| 隆安县| 昌都县| 峡江县| 赤壁市| 潼南县| 曲松县| 合作市| 太白县| 峨眉山市| 福海县| 特克斯县| 竹北市| 千阳县| 六盘水市| 庄浪县| 息烽县| 定南县| 河北省| 那曲县| 天长市| 黔西| 禹州市| 科技| 荣成市| 武山县| 开平市| 长泰县| 潮州市| 于田县| 辛集市| 马鞍山市| 信宜市| 望谟县|