實驗目的
將TinyOS移植到CC2430芯片
實驗准備
硬件:CC2430開發板一塊(華凡出產),仿真器
軟件:Keil,TinyOS 2.x,TinyOS8051wg-0.1pre4.tgz,SmartRF04 FlashProgramer
其它:在做實驗之前請確保你已經正確安裝了TinyO-2.1.1及其它工具。具體安裝步驟可以參考網上資料。
實驗步驟
步驟1:安裝Keil
(1) 由於是在linux系統下,所以需要安裝wine來運行.exe文件。在終端運行
Sudo apt-get install wine 裝完之後就可以安裝keil。
(2) 把keil解壓出來後,復制C51V900.exe等有用的文件到其它目錄下。(給個下載無限制版的keil鏈接:
下載在Linux公社的1號FTP服務器裡,下載地址:
FTP地址:ftp://www.linuxidc.com
用戶名:www.linuxidc.com
密碼:www.muu.cc
在 2012年LinuxIDC.com\9月\Ubuntu下將TinyOS移植到CC2430芯片
下載方法見 http://www.linuxidc.net/thread-1187-1-1.html
然後在終端中運行
WINEPREFIX=/root/.wine.keil wine C51V900.exe
(3) 在安裝完成後,一般情況下會在桌面上有keil的圖標。參看其屬性裡頭有提示運行的命令,並在終端運行Keil
WINEPREFIX="/root/.wine.keil" wine C:\\Keil\\UV3\\UV3.EXE
(4) 剩下的工作就是破解軟件的工作了。
步驟2:安裝tinyos-2.x-contrib
在安裝了TinyOS-2.1.1後/opt目錄下應該有tinyos-2.1.1目錄。接著TinyOS8051wg-0.1pre4.tgz下載鏈接(http://www.tinyos8051wg.net/download)
將其放到/opt目錄下,接著輸入如下命令對該文件解壓縮
cd /opt
tar –xvzf TinyOS8051wg-0.1pre4.tgz
此時會在/opt下生成一個tinyso-2.x-contrib目錄。
步驟3:修改環境變量
在 tinyos-2.x-contrib/diku目錄下有個env 文件,該文件包含了要設置的環境變量,根據需要修改,由於現在用的是tinyos-2.1.1版本,所以/opt目錄下原有的tinyos-2.x目錄已 經被tinyos-2.1.1取代,所以需要修改TOSROOT,改成:
TOSROOT = /opt/tinyos-2.1.1否則提示找不到makerules文件。
此外,由於我們使用的是keil編譯器中,所以編譯器選項要選擇keil export MCS51_COMPILER = keil。在修改完之後source一下env使環境變量有效。
注意: (1) 每次重新啟動後如果需要編譯,需要運行此命令(source /opt/tinyos-2.x-contrib/diku/env)
(2) 命令不能是 source env。因為env系統默認是目錄。
步驟4:編譯工程
編譯工程文件(以BlinkNoTimerTask為例)
cd /diku/common/apps/BlinkNoTimerTask
make cc2430em
如果出現如下錯誤
Z:/opt/tinyos-2.x-contrib/diku/common/apps/BlinkNoTimerTask/build/cc2430em>C:/Keil/C51/BIN/A51.EXE "startup.a51" SET (SMALL) DEBUG EP
File not found
make: *** [build/cc2430em/startup.OBJ] 錯誤 49
說明keil安裝路徑錯誤,按步驟2重新安裝。TinyOS默認的keil安裝路徑是$(HOME)/.wine.keil,確保路徑正確。
如出現***ERROR L257:EXTENDED LINKER REQUIRES UPGRADE TO PK51那麼很可能是破解沒有成功。重新安裝Keil,並且使用keygen破解。
其他錯誤代碼可參考ARM INFOMATION CENTER,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka11370.html
最後如果編譯成功的話,就會生成hex文件,在/build/cc2430em下。
步驟5燒寫
(1)下 載並安裝SmartRF04 Flash Programmer這個軟件
(2)電腦USB跟仿真器連接,仿真器跟芯片連接好後,提示安裝驅動,自動安裝好後即可以用了。
(3)打開chipcon下的SmartRF04 Flash Programer,設置如下:
注意用System-on-Chip => Flash iage選擇剛才編譯好的app.hex文件 => 點擊Read IEEE, 然後Write IEEE => 勾選Retain IEEE address when reprogramming => Action中選擇第二個Erase,program and v… =>最後點擊Perform actions,出現Erase,program and verify OK。表示成功了,而且此時芯片上的一個小燈在不停的快速閃爍。