搜索
bottom↓
回复: 6

CC2430单片机的TinyOS和TinyOSfor8051移植【整理】

[复制链接]

出0入0汤圆

发表于 2012-10-19 11:09:52 | 显示全部楼层 |阅读模式
下文是标准TinyOS的移植以及for8051的移植,网上去的,比较试试!!版权由原作者保留。呵呵

for8051的移植:
本文发表在PSYcHic  原文地址为:http://www.darlingtree.com/wordpress/archives/187 如需转载请保留这个网址 谢谢!
现在国内做WSN研究的人越来越多了。在硬件方面,我们国内不像国外那样拥有很多硬件开发平台可以供我们选择。而且,crossbow的专业开发平台价格非常昂贵。不过随着越来越多的公司开始关注WSN,zigbee,我们现在还是有可能在千元之内就搭建出来一套自己的无线传感器开发系统。
CC2430是现在较为理想的硬件平台。在国内,大多数人还是使用IAR结合z-stack协议栈(或者是变种的xx龙版)进行开发。z-stack协议栈开发比较简便,很适合新手使用。但是如果你是搞学术研究,需要深入研究组网及相关算法开发的话,那么UC Berkely的TinyOS才是最佳的选择。(我相信聪明的人不会去淌z-stack的OSAL的浑水吧….)
很多人已经成功将TinyOS移植到了CC2430上了。但是目前在网上似乎找不到有比较详细操作步骤的文章。那么我来给大家科普下吧:)
—-
介绍:
首先,我们要往CC2430上移植的是TinyOS 2.x版本。如果你英文好的话直接前往下面这里查看相关资料http://tinyos8051wg.sourceforge.net/
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 : 请到http://tinyos8051wg.sourceforge.net/download 这里下载最新版本 (本文是根据TinyOS8051wg-0.1pre4.tgz 26 Oct 2008 这个版本进行的介绍)
Keil:请安装好,记住一定要安装没有2K限制的版本。
下面开始安装软件:
0、安装Keil ——Keil是现在单片机开发必备的软件了,网上资料一大堆,我就省略了。自己安装好就可以了。
1、安装Java 1.5 JDK
下载地址 http://java.sun.com
如果你做Java开发,以前安装过的话就可以跳过这一步了。
2、安装Cygwin
请安装TinyOS推荐使用的版本。不少人在后面遇到各种诡异的问题就是因为Cygwin安装不当,缺少一些必要的组件。
你可以去:http://cone.informatik.uni-freib ... am/cygwin-files.zip
下载这个版本的Cygwin。
如果链接失效,请前往TinyOS官方的wiki寻找其推荐的Cygwin版本:http://docs.tinyos.net/index.php ... r_host_OS_with_RPMs
安装过程很简单,一路next下去就OK,不过请记住你安装的位置。本文默认是安装到C盘下。
3、下载TinyOS开发必备的编译工具的安装包(一共4个)
NesC编译工具:nesc-1.3.0-1.cygwin.i386.rpm
TinyOS相关工具:
tinyos-deputy-1.1-1.cygwin.i386.rpm
tinyos-tools-1.3.0-1.cygwin.i386.rpm
tinyos-2.1.0-2.cygwin.noarch.rpm
4、启动Cygwin,并在Cygwin下安装上面下载好的rpm包
双击图标即可启动Cygwin。 正常启动后应该会有”$”标识符和光标。
我们要安装rpm包,就要首先切换到rpm包存放的目录下。如果你熟悉Linux,那么自己安装就行。如果不是的话,按照我所说的一步一步来。
1)首先找到你安装Cygwin的目录,如果是默认安装的话就是C:\Cygwin
2)进入目录,发现里面有/bin /var /etc /opt /home等文件夹,Linux系统下的根目录就是这个样子啦。
我们双击home文件夹,发现里面又有另外一个文件夹,起的是你安装时设置的用户名称,假设你叫做quake(请替换为你自己的用户名)。现在进入C:\Cygwin\home\quake下面,把刚刚下载的4个rpm包拷贝到这个文件夹下面。
之后在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:\Cygwin\opt 下
好了。我们已经把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 = 4 9
PDATA SIZE = —- —-
DATA SIZE = —- —-
IDATA SIZE = —- —-
BIT SIZE = —- —-
Total sizes
Program Size: data=9.0 xdata=10 const=0 code=694
这段话,这表明你已经成功了!~
好了,下面我们看看TinyOS生成了什么吧~
C:\cygwin\opt\tinyos-2.x-contrib\diku\common\apps\BlinkNoTimerTask\
build\cc2430em
这个目录下面我们发现了其编译生成的app.hex文件。现在只要把这个文件烧录进单片机,我们就大功告成了!
烧录
我们安装下SmartRF04 Flash Programmer这个软件,这个软件一般购买仿真器的话都会在附送的光盘里面赠送,如果没有的话网上搜索下吧,实在没有给我发信索取下。之后我们插好仿真器,打开SmartRF04 Flash Programmer这个软件,在system-on-chip的选项卡下将hex文件选择为我们刚刚编译好的那个,之后选择“Perform actions”就可以顺利烧写了:)好了,如果一切正常,那么恭喜你已经将TinyOS成功移植到了CC2430上了。我们成功摆脱了IAR不断升级的困扰和Z-stack,已经进入到了TinyOS的世界了。

  具体卸载步骤:
1. 在Cygwin的窗口下先用rpm -qa先列出安装过.rpm包,按照列出的包名卸载
2. 使用rpm -e 包名或rpm -e --nodeps 包名,卸载.rpm 文件。注意:这里的包名不能包括.rpm或
.i386.cygwin等字样。
3. 卸载Cygwin,删除快捷方式及开始菜单中的Cygwin。(C盘下的Cygwin直接删了)
4. 运行regedit,打开注册表,删除 HKEY_LOCAL_MACHINE\SoftWare\Cygnus Solutions\。删除
Cygwin根目录下的文件。

标准TinyOS2.x环境的搭建(TelosB, MicaZ,Imote2 ?)
分类: WSN 2011-06-03 16:17 538人阅读 评论(0) 收藏 举报
注:1).标准TinyOS和TinyOSfor8051移植有很多异同点,这里先假设PC机没有安装过TinyOSfor8051,开始按步骤搭建标准的TinyOS环境,最后再给出异同点。
   2).Xbow光盘中提供一键安装包,但是TinyOS是1.x版本,而且nscC版本也很低。所以不建议使用,当然目前其他公司的最新产品应该会针对自己的产品提供最新版本的一键式安装包。
移植工作参考TinyOS官方资料:
http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html   (2.0.0版本)
http://docs.tinyos.net/index.php ... tall_with_a_Live_CD   (2.1.1版本)
http://sing.stanford.edu/intelmote2/install-tinyos.html  比较全

搭建环境所需要的软件包整理如下(都放在了一个文件夹中,也可以从上面给出的两个官网中下载最新的进行更新):

在这里补一下Imote2的工具包:

下面开始环境搭建:
步骤一:JAVE JDK1.6 安装
首先,我们安装JAVE 开发工具JAVE JDK :
Java SE Development Kit (JDK) 6 下载地址:
http://www.oracle.com/technetwor ... ownload-346242.html
下载的默认文件名为:jdk-6u25-windows-i586.exe
安装过程只需下一步……下一步便可……
然后,我们需要设置电脑的环境变量,需要新建两个环境变量,以便使用JDK
具体过程如下:
右击我的电脑——〉属性——〉高级——〉环境变量——〉
系统变量(S)栏——〉新建(W)——〉新建系统变量 对话框
如下图:

变量名(N):JAVA_HOME
变量值(V):JDK安装的路径,自己的路径为:C:/jdk1.6.0_25
变量名(N):CLASSPATH
变量值(V):
.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

在用户变量的PATH中添加:;%JAVA_HOME%/bin:$PATH;%JAVA_HOME%/jer/bin:$PATH;
在系统变量(S)栏选中变量为Path的选项,点编辑
在变量值(V)的末尾添加:;%JAVA_HOME%/bin; ;%JAVA_HOME%/jre/bin;

这样,我们的环境变量已经设置完毕了。
我们可以编个JAVA小程序测试简单的测试一下:
打开记事本,输入下面这个小程序,另存为HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
运行cmd,到HelloWorld.java所在目录,执行
javac HelloWorld.java
java HelloWorld
如果能正确输出Hello, World! 说明环境变量设置成功。


步骤二:Cygwin 软件平台安装
我们需要安装Cygwin这个软件模仿Linux平台,运行TinyOS-2.X。
下载地址:ftp://soft.coolersky.com:19527/iso/cygwin2.510.2.2.iso
或者下载:cygwin-files.zip包解压缩在c:/cygwin-files,

安装过程说明:
安装时,最好先将安装包下载到本地,然后选择Install from Local Directory安装
紧接着需要设置安装目录,设置安装文件的本地储存路径(c:/cygwin-files或其他)等。

安装包策略选择:“Keep”、“Prev”、“Curr”、“Exp”等等选项
Keep, 意思就是说保持目前已经安装的版本不动,不替换你目前的版本。升级时比较方便。
Prev,意思是说安装上一个版本。
Curr,意思就是说把最新的版本下载下来安装
"View"按钮是用来选择显示方式的

在选择安装包时候,我们需要选择:
Archive,Devel(gcc、make等编译工具),Libs,Net,Shells,Utils(rpm等命令) 等等
(这里我们选择Default就行,工具包都会安装)
其中安装方式共有这么几类:
(1)Default:这是默认选择,可点击包左边的+号展开,看看缺省安装究竟是些什么内容。
(2)Install:表示要下载/安装该包的全部内容。
(3)Reinstall:表示重新下载/安装该包的内容
(4)Uninstall:卸载。
剩下的,和一般软件一样。
最后我们可以通过桌面上添加Cygwin的快捷方式或者运行安装目录下的cwgwin.bat文件,来运行该软件平台:
Cygwin启动界面如下图:

下面我们可以先来尝试一些简单的Linux命令:
help: 帮助命令。例如 ls --help 。显示ls命令使用说明。
pwd:显示所在路径。
rpm –qa :查看已经安装的程序,刚安装的Cygwin是没有安装任何系统的。
rpm –ivh 文件名:rpm文件安装。
rpm –ignoreos –force或者rpm -ivh --force --ignoreos:忽略错误,安装rpm文件
--ignoreos选项是用于忽略cygwin的版本号
cd:切换目录 比如:cd /tmp 进入tmp文件。
cp:cp -R Blink BlinkSingle
ls:显示文件。
whoami:显示登陆Windows帐号
uname –a: 显示版本信息
echo $PATH: 显示执行程式的搜索路径
ps ax: 显示process list ,显示目前有哪些process 执行
ctrl-D或exit 或logout:结束bash 视窗
motelist 查询当前设备

步骤三:TinyOS 工具包安装
下面把下载好的TinyOS工具包,复制到C:/cygwin/home/jacoxu/tinostools/TinyOS_specific_tools目录下
nesC nesc-1.3.0-1.cygwin.i386.rpm
tinyos-deputy-1.1-1.cygwin.i386.rpm
tinyos-tools tinyos-tools-1.3.0-1.cygwin.i386.rpm

然后进入cygwin目录下,使用命令行
$ rpm -ivh --ignoreos *.rpm
安装rpm工具包。

完成

步骤四:安装TinyOS2.x
下面把下载好的TinyOS工具包,复制到C:/cygwin/home/jacoxu/tinostools/ TinyOS_2.X目录下
tinyos-2.1.0-2.cygwin.noarch.rpm

然后进入cygwin目录下,使用命令行
rpm -ivh --ignoreos *.rpm

完成

步骤五:MSP430、AVR和PXA工具包安装
(注:MSP430工具包主要是支持TelosB平台,AVR工具包主要是支持MicaZ,PXA主要是针对Imote2平台。可针对自己的平台只选其中一种安装。这里,我们可以都安装上)
下面把下载好的MSP、AVR和PXA工具包,复制到C:/cygwin/home/jacoxu/tinostools/ MCU_tools目录下

然后进入cygwin目录下,使用命令行
rpm -ivh --ignoreos *.rpm

出现了一些warning,可先忽略,继续进行环境配置。
还有一个文件jflashmm.tgz ????????????????????????????????????

步骤六:设置TinyOS2.X 环境变量
用UltraEdit创建C:/cygwin/etc/profile.d/tinyos.sh,输入以下内容:(使用UNIX换行符-LF保存)
(配置文件已经写好了)
# script for profile.d for bash shells, adjusted for each users
# installation by substituting /opt for the actual tinyos tree
# installation point. 
export TOSROOT="/opt/tinyos-2.x"
export TOSDIR="$TOSROOT/tos"
export CLASSPATH="C:/cygwin/opt/tinyos-2.x/support/sdk/java/tinyos.jar"
export CLASSPATH="$CLASSPATH;."
export MAKERULES="$TOSROOT/support/make/Makerules"
export PATH="/opt/msp430/bin:$PATH"
export PATH="/cygdrive/C:/jdk1.6.0_25/bin:$PATH"

# Extend path for java
type java >/dev/null 2>/dev/null || PATH=`/usr/local/bin/locate-jre --java`:$PATH
type javac >/dev/null 2>/dev/null || PATH=`/usr/local/bin/locate-jre --javac`:$PATH
echo $PATH | grep -q /usr/local/bin || PATH=/usr/local/bin:$PATH

执行命令:  tos-install-jni
如果出现一下错误信息:

我们需要将以下目录中的toscomm.dll,重命名为:toscomm-32.dll
C:/cygwin/lib/tinyos
C:/Program Files/Java/jdk1.6.0_10/jre/bin
toscomm.dll ——toscomm-32.dll
重新tos-install-jni命令。


步骤七:安装 Graphviz (版本1.1)
下载地址:http://webs.cs.berkeley.edu/tos/ ... s/graphviz-1.10.exe,安装到C:/Program Files/ATT目录下
安装了Graphviz之后,可以使用命令
$  make micaz docs
生成程序使用的所有组件、接口的关系的文件。生成的文件在tinyos-2.x/doc/nesdoc 目录下,其中索引文件为 “index.html”。

步骤八:测试安装
1.环境测试:
   运行cygwin,输入命令: 
   $ tos-check-env
  出现WARNING: java 1.4 or java1.5,tos-check-env completed without error等:

         输入
      $ which java
出现:/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin/java
如果出现/cygdrive/c/WINDOWS/system32/java
则尝试输入:export PATH="/cygdrive/c/Program Files/Java/jdk1.6.0_10/bin:$PATH"
如果出现和Graphviz1.1相关的信息的话,就重新安装Graphviz1.1。
有一些warning也可以忽略不记的。
2、检查己经让TinyOS buile system环境可运行的.
运行shell,输入如下命令:
$ printenv MAKERULES
将看到:/opt/tinyos-2.x/support/make/Makerules
这是正确的

TinyOS 2.x文件概览
TinyOS 2.x包括tos、apps、support三个文件夹。其中tos部分最为重要,是TinyOS操作系统的源代码所在文件夹;apps则是一些应用程序,一开始时大家可以参看此文件夹里的例子,模仿其编程,逐渐熟悉TinyOS编程;support是TinyOS支持的编译平台。
图1 TinyOS 2.x包含的文件

tos文件夹里的文件是TinyOS系统源代码,其中红色方框圈住的文件夹是和MicaZ密切相关的,使用MicaZ硬件平台的读者应该经常查看这几个文件夹里面的内容!

出0入0汤圆

发表于 2014-3-5 18:21:24 | 显示全部楼层
这么详细的教程怎么会没人顶?

出0入0汤圆

发表于 2014-3-5 20:15:24 | 显示全部楼层
不明觉厉,先顶慢慢学习

出0入0汤圆

 楼主| 发表于 2014-4-20 22:20:16 | 显示全部楼层
godfooker_back 发表于 2014-3-5 20:15
不明觉厉,先顶慢慢学习

谢谢,有需求就好

出0入0汤圆

 楼主| 发表于 2014-4-20 22:21:20 | 显示全部楼层
macaroni 发表于 2014-3-5 18:21
这么详细的教程怎么会没人顶?

技术性不高,学术又太偏,呵呵

出0入0汤圆

发表于 2014-4-21 16:06:24 | 显示全部楼层
我只是路过的,不过不明觉厉。

出0入0汤圆

发表于 2014-5-29 16:09:26 | 显示全部楼层
看起来很厉害的样子,路过友情帮顶。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 22:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表