09年TI推出CC2530,直到现在也没有人把TinyOS移植到这款SOC上(可能有人已经移植成功了,只是比较低调而已)。之前把TinyOS移植到了MSP430F2618+CC2520+CC2591平台上,为了使我们项目组设计的平台能够相互兼容,顺便把TinyOS移植到CC2530上。
首先要做的工作就是编译环境的搭建,如果之前你已经使用了CC2430,那么环境搭建这块可以跳过。TinyOS
8051工作组为以51为内核的片上系统使用TinyOS提供了一个插件,与其说是一个插件倒不如说它就是一个完完全全的TinyOS系统。环境的搭建可以参考网上的一些文章,这里推荐一篇http://nmgzhangw.blog.163.com/blog/static/113896136201024305967/这里说的很详细,不过我这里用的是Ubuntu所以Cygwin的安装就可以省去了.
1.TinyOS-2.1.1的安装可以根据TinyOS官网上Getting started中的Automatic
installation for debian system。首先,更新你的源
sudo gedit /etc/apt/sources.list
在最后加上deb
http://hinrg.cs.jhu.edu/tinyos karmic main,然后更新下
sudo apt-get update
之后就可以安装了
sudo apt-get install tinyos-2.1.1
安装完成之后设置一下路径,可以修改~/.bashrc或者~/.profile文件,加入如下语句source
/opt/tinyos-2.1.1/tinyos.sh,这里默认的是Tinyos安装在/opt下。
安装python开发包:
apt-get
install python-dev
这一步是必须的,不然在运行之后的make micaz sim的时候会报错。
之后查看自己的python版本,然后修改/opt/tinyos-2.1.1/support/make/sim.extra
修改PYTHON_VERSION为自己的python版本。编辑/opt/tinyos-2.1.1/tinyos.sh文件,修改
CLASSPATH环境变量如下:
<wbr style="border-top-width:0px; padding-right:0px; padding-left:0px; border-left-width:0px; border-bottom-width:0px; padding-bottom:0px; margin:0px; padding-top:0px; border-right-width:0px">CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java/tinyos.jar:.</wbr>
为了在启动shell时,自动设置 TinyOS环境变量
sudo gedit ~/.bashrc
在$HOME下的.bashrc文件中添加下面语句:
source /opt/tinyos-2.1.1/tinyos.sh
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
最后运行tos-check-env检查你一下你有没有正确安装。
2.安装Keil (Keil uVersion4)
需要安装包的可以给我留言,因为只能上传小于20M的文件,所以没能传上来。注册机可以在资源里搜索Keil
C51 V900注册机。
因为是在Linux系统下,所以需要安装wine来运行.exe文件。终端运行
sudo apt-get install wine装完之后就可以安装Keil了。把Keil解压出来后,复制C51V900.exe
、KEIL_Lic.exe到其他目录(最好不要带中文名),在该目录下,终端中运行
WINEPREFIX=/root/.wine.keil wine C51V900.exe
跳出来windows下熟悉的软件安装界面,全部默认安装。最后,选择最后一项提供示例程序。安装完成,终端运行Keil
WINEPREFIX=/root/.wine.keil wine "C:/Keil/UV4/Uv4.exe"
Keil开始运行,增加License,file->License Management,在另一个终端中运行注册机(不需要root权限运行)
终端运行
wine KEIL_Lic.exe
拷贝CID里的内容到注册机里的CID,点击生成注册码。
重新运行Keil 编译自带的示例程序,若没有警告License信息,则注册成功。
3.安装tinyos-2.x-contrib
在第一步安装了TinyOS-2.1.1后/opt目录下应该有个tinyos-2.1.1目录。将下载的TinyOS8051wg-0.1pre4.tgz解压后生成的tinyos-2.x-contrib拷贝到/opt目录下。修改环境变量,在tinyos-2.x-contrib/diku目录下有个env文件,该文件包含了要设置的环境变量,根据需要修改,因为现在用的是tinyos-2.1.1版本,所以/opt目录下原有的tinyos-2.x目录已经被tinyos-2.1.1取代,所以首先修改TOSROOT=/opt/tinyos-2.1.1
否则提示找不到Makerules文件,这就是为什么要安装tinyos-2.1.1的原因。目前我们用的是keil编译器所以编译器选项要选择keil export MCS51_COMPILER=keil。修改完之后source一下env使环境变量有效。
注意:每次重新启动后如果要编译,需要运行此命令(source /opt/tinyos-2.x-contrib/diku/env)
下面测试Keil工具链是否可用
编译工程文件(以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
4.安装其他交叉编译链
SDCC安装在ubuntu下很是方便,终端运行
apt-get install sdcc sdcc-libraries
修改env文件,使编译工具设为sdcc,export MCS51_COMPILER=sdcc
source /opt/tinyos-2.x-contrib/diku/env
重新编译BlinkNoTimerTask,应该没有问题。
IAR安装(目前还没有破解成功,只能使用30天试用版)。在IAR官网下载IAR For 8051,以及破解工具(只是用于通过安装,并不能破解,因为在ubuntu下keygen识别不了ID)。安装方法类似于Keil。
WINEPREFIX=/root/.wine.iar wine autorun.exe
按照提示选择默认安装。
安装完成后修改/opt/tinyos-2.x-contrib/diku/env,选择MCS51_COMPILER=iar,并修改MCS51_IAR_PATH=Program\
Files/IAR\ Systems/Embedded\ Workbench\ 5.3/common/bin/,这个设置要根据当前安装的IAR版本设置。
因为IAR没有破解成功,运行时候会提示错误Fatal Error[Cp001]: Copy protection
check, No valid license found for this product [20] Error while running C/C++ Compiler。但是,到此阶段已经生成了我们需要的app.c文件。拷贝此文件到Windows下使用IAR Embedded Workbench进行编译,值得注意的是在编译之前需要对工程进行设置,设置如下:
工程设置好之后,修改app.c文件,加入头文件ioCC2530.h。注销以sfr,sbit开头的寄存器定义语句,这些在ioCC2530.h被定义了,最后就是修改错误提示中未定义的寄存器名,因为TinyOS中某些寄存器名的定义与ioCC2530.h定义的名不相同。
转载地址:http://blog.csdn.net/hwwr112100/article/details/6539055
分享到:
相关推荐
本PDF密码为tinyos,在资料中详细讲解了TinyOS2.0以上版本在Ubuntu上的安装与测试,更关键的是安装中遇到的问题都有详细的解决方式。
tinyos-ubuntu16.04安装tinyos2.1.2
是在ubuntu下安装tinyos的方法教程,还是比较傻瓜式的教程,按照一步一步做应该可以成功!如果安装不成功,请发邮件到hongjie656@sina.com
这是我在ubuntu下安装tinyos的总结
这个是在Ubuntu14.04下和虚拟机下的Tinyos安装,里面的内容是我们老师的,来这里赚点积分orz
Ubuntu下Ardupilot仿真环境搭建
tinyos 详细安装教程,每步的代码都有。
文档描述了如何在虚拟机环境下ubuntu搭建samba环境的过程。方便初学者快速搭建,按照文档的介绍,你就可以在你的ubuntu中搭建你的samba共享环境,实现windows与linux资源共享
在ubuntu环境下搭建jira管理系统,不使用jira自带的数据库,使用mysql数据库
此为tinyos-ubuntu14 配置成功后的镜像文件,可使用为物联网工程专业课程无线传感器网络的实验平台
tinyos2.10 系统 可以在ubuntu下进行配置安装
ubuntu pppoe server环境搭建说明
S32K 使用的 IDE S32DS Ubuntu18.04 环境搭建
包含Tiny6410在Ubuntu下安装Qt所需的全部安装包 包括 (1)arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz(交叉编译环境) (2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt 的源码) (3)qt-creator-linux-x86_64-...
基于tinyos的实验教程(包含tinyos在ubuntu下的环境配置): 实验一............................简单LED实验 实验二............................tinyos执行模型 实验三............................节点-节点无线通信...
Ubuntu10.10下kgdb环境搭建
ubuntu 下eclipse CDT搭建交叉编译开发环境
slurm在ubuntu上的搭建
ubuntu20.04 stm32开发笔记---之开发环境搭建 。不是IDE,请要找IDE的不用浪费时间。谢谢!
ubuntu下android ndk编译环境搭建,android应用程序开发,环境编译