红联Linux门户
Linux帮助

Ubuntu下将TinyOS移植到CC2430芯片

发布时间:2014-08-22 10:58:46来源:linux网站作者:dudu1990

实验目的

将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等有用的文件到其它目录下。

然后在终端中运行

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。表示成功了,而且此时芯片上的一个小灯在不停的快速闪烁。