ZStack-CC2530-2.5.1a开发(一)工程建立

ZStack版本:ZStack-CC2530-2.5.1a
下载和调试器:SmartRF04EB
IDE开发软件:IAR Embedded Workbench IDE - 8051 10.20.1
开发平台:基于TI-CC2530的任意厂家的
工程模板:ZStack-CC2530-2.5.1a\Projects\zstack\Samples\GenericApp

1、建立工程
1.1 复制ZStack-CC2530-2.5.1a\Projects\zstack\Samples\GenericApp,
并更改名称为ZStack-CC2530- 2.5.1a\Projects\zstack\Samples\GenericApp_test。
1.2进入GenericApp_test\Source目录,将genericapp.c分别复制并改名为Coordination.c、Router.c、EndDevice.c 三个文件。
1.3进入GenericApp_test\CC2530DB目录,双击GenericApp.eww,打开工程,弹出如下提示:
ZStack-CC2530-2.5.1a开发(一)工程建立_第1张图片
点击“Yes ”即可,整个工程界面如下图所示:
ZStack-CC2530-2.5.1a开发(一)工程建立_第2张图片
1.4 点击左侧导航栏App前面的加号,展开其所有文件,选择genericapp.c,点击右键,在弹出菜单中选择"Remove"。如下图所示:
ZStack-CC2530-2.5.1a开发(一)工程建立_第3张图片
1.5 再次选中App文件夹,点击右键,在弹出菜单中选择“Add”->“Add Files”,依次将1.2中建立的Coordination.c、Router.c、EndDevice.c 三个文件添加到工程中。
ZStack-CC2530-2.5.1a开发(一)工程建立_第4张图片
2、配置工程
此工程有三种配置模式,分别对应了Zigbee中的三种设备类型,分别是协调器、路由器、终端设备。点击导航上面的小箭头,即可看到三种配置,默认是协调器模式,我们可以通过鼠标在此选择不同的配置模式,如下图:
ZStack-CC2530-2.5.1a开发(一)工程建立_第5张图片
我们在1.5中添加的三个文件,从名字上就可以知道应该分别属于不同的配置模式的。在每种配置模式下,只需要编译自身相关的文件,而不需要编译不相关的问题,那么该如何做呢?
2.1 协调器模式设置
将工程配置模式设置为协调器模式,默认就是此模式。然后选中EndDevice.c文件,点击右键,在弹出菜单中选择“Options”
ZStack-CC2530-2.5.1a开发(一)工程建立_第6张图片
进入如下界面:勾选红色圈1,点击“OK”,即可。同样将Router.c照此处理。
ZStack-CC2530-2.5.1a开发(一)工程建立_第7张图片
2.2 路由器模式设置
同理,将工程设置为路由器模式,将Coordination.c、EndDevice.c 两个文件排除编译。
2.3 终端设备模式设置
同理,将工程设置为终端模式,将Coordination.c、Router.c两个文件排除编译。
3、编译工程
在这里插入图片描述
随便选择一种配置模式,点击上图中,红色圈中图标,编译工程。出现好多错误,如下下图:ZStack-CC2530-2.5.1a开发(一)工程建立_第8张图片
这是因为TI的ZStack需要对应的IAR版本进行编译,我们的IAR版本与之不匹配。如何解决。
3.1 更换chipcon_cstartup.s51文件
找一个新版本的栈,比如Z-Stack 3.0.2,将其目录Z-Stack 3.0.2\Projects\zstack\ZMain\TI2530DB里的chipcon_cstartup.s51文件,拷贝覆盖到\ZStack-CC2530-2.5.1a\Projects\zstack\ZMain\TI2530DB的目录下。
3.2 设置更改。
如下图,选中工程文件,点击右键,在弹出菜单中选择“Options”
ZStack-CC2530-2.5.1a开发(一)工程建立_第9张图片
弹出如下界面:依次选择红色圈1,将红色圈2里的16更改成8,然后,点击“OK”。(3.2需要在三种配置模式下,分别各操作一次)。
ZStack-CC2530-2.5.1a开发(一)工程建立_第10张图片
编译工程,发现再无错误,工程编译成功。
4、去除工程配置中的部分宏定义
TI的ZStack-CC2530-2.5.1a协议栈中实现了许多功能,它们是依靠宏定义来决定的,如果定义了相关宏,则这部分代码参与编译,否则这部分代码不参与编译。而对于初学者,或者是特定的设计来说,有的功能就不需要,比如LCD功能等。这时候我们可以通过注销掉这些宏,就将这些代码从工程编译中去除了。
本工程中,我们主要去除监控串口和LCD功能的宏定义。
选中工程选中工程文件,点击右键,在弹出菜单中选择“Options”,弹出如下界面:
ZStack-CC2530-2.5.1a开发(一)工程建立_第11张图片
选中红色圈1,然后点击红色圈2,在红色圈三种,将MT_打头的宏定义前全部加上x,在LCD_SUPPORTED=DEBUG前也加上x。(三种配置模式,均要进行此操作)

ZTOOL_P1
xMT_TASK
xMT_SYS_FUNC
xMT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
5、生成调试文件和hex文件
5.1选中工程选中工程文件,点击右键,在弹出菜单中选择“Options”,如下图所示:

ZStack-CC2530-2.5.1a开发(一)工程建立_第12张图片

选中红色圈1,在选中红色圈2,勾选红色圈3,更改红色圈4的文件名,根据不动配置,可将文件名分别更改成,Coordination.d51、Router.d51、EndDevice.d51。也可不更改,该文件为生成的在线调试文件。然后勾选红色圈5,然后选择红色圈6,如下图所示:
ZStack-CC2530-2.5.1a开发(一)工程建立_第13张图片
勾选红色圈7,再勾选红色圈8,然后将红色圈9的内容根据不同配置更改为Coordination.hex、Router.hex、EndDevice.hex。此文件即烧写的hex文件,名可以不更改,但是后缀一定要更改。将红色圈10中的选项配置为上图里的内容。最后点击红色圈11的"OK"。(此操作三种配置进行照此设置)
5.2 打开“f8w2530.xcl”,如下图所示:
在这里插入图片描述

将红色209,210两行前面的注释去掉。
设置完成后,重新编译即可生成hex文件。

你可能感兴趣的:(Zigbee)