CC2530的TinyOS移植之windows篇
对于TinyOS略有使用经验的都知道,TinyOS的开发者都是在linux环境下进行开发的,用到了大量linux中的小工具程序,如perl,python,make,awk等等。 然而除了这些开发者,我们大多普通人日常使用还是以windows为主。在这种情况下,为了使用TinyOS,就不得不请出cygwin了。 cygwin就为windows提供了一个linux环境,具有绝大多数常用的linux工具。这样一来,在cygwin中开发TinyOS程序基本和在linux下一般无二。
首先,我们就先来安装cygwin: 从cygwin.com下载一个名为setup.exe的安装程序,打开,选一选安装路径,一路点下一步就会完成安装(中间要下载一堆安装包,要耐心等待)。
装完后,桌面上多出一个cygwin图标,打开即可进行cygwin的命令行,所有操作都在这个命令行中完成。 cygwin默认安装的工具比较少,连gcc4,perl,python,make,rpm都没有,所以去重新打开setup.exe,在select packages页中将gcc4,perl,python,make,rpm,libmpfr4标记为安装。然后下一步下一步...
现在,cygwin环境已经比较完整,接着就该配置tinyos环境了。 TinyOS环境的配置在官方文档中有很详细的描述,但是只针对cc2530的话可以将配置过程简化很多:
- 下载nesc和tinyos-tools的cygwin安装包,
放到某个目录下,比如c盘根目录下。然后,在cygwin中切换到该目录,安装这两个包:
cd /cygdrive/c rpm -ivh nesc-1.3.1-1.cygwin.i386.rpm rpm -ivh tinyos-tools-1.4.0-3.cygwin.i386.rpm
这样tinyos环境就配置好,比你想象中的要简单吧!
接着就去下载cc2530的tinyos移植的源代码tinyv6,开发者把cc2530的tinyos移植和一个ipv6协议栈一块发布了,所以你甚至可以在cc2530上用tinyos跑ipv6!
源代码在这里下载:http://code.google.com/p/tinyv6/
解压下载的源码包:
tar xvf tinyv6-x.x.tar.bz2
接着执行一个脚本自动设置一些环境变量:
cd tinyv6-x.x source tinyv6.sh
好了,到此为止,所有的环境都配置完成,可以编译TinyOS程序了。先来Blink一个尝尝鲜:
cd apps/Blink make cc2530
编译成功!得到build/cc2530/app-iar.c,tinyos的任务完成,接下来就得IAR出马了。
既然给cc2530写程序,IAR总是得有的吧。我用的for 8051的7.51A,新建个空的project,找到工程属性设置对话框,
- "General options->device选为"cc2530"
- "General options->data model选为"large"
- General options->Calling convetion"设为"XDATA stack reentrant"
- "General options->Stack/Heap->XDATA" 设为0x400。
- "C/C++ compiler->optimizations"中将level设为High
接下来编译,写入设备,这几步自然不在话下。 如果你在CC2530的P0.0,P0.1,P0.2引脚接了三个LED灯的话,你就可以看到它们欢快地闪起来了吧。