Zstack之新建工程

TI的Zigbee解决方案Zstack协议栈,下载下来安装好之后我们可以发现其实这就是一个包含了各种资源文件和工具的文件夹。而要如何使用该文件夹里的东西去新建一个工程,则需要花费时间先去了解其各个文件夹中的结构和内容,而并没有一个软件可以进行类似于向导式的配置开发,非常迥异于TI CCS软件那种引导式的风格,这也是我初次接触Zstack而不太习惯的地方。结果琢磨了很久才在Zstack文件夹中的Documents文件夹中找到一个TI的官方文档:Create New Application For CC2530DB.pdf,文档编号:SWRA231

下面就根据该官方文档提供的方法介绍下如何新建一个Zstack工程。

首先,要明白的一点是TI是以模板的形式提供了很多适用于不同场合和情形的Zstack工程方案,在Zstack文件夹中的Project文件夹中,里面又包含了多个子文件夹,如图1所示:

Zstack之新建工程_第1张图片

图1

其中的HomeAutomation为适用于智能家居控制的Zstack工程文件,Sample文件夹中包含了三个工程文件,他们既可以作为学习了解Zstack的示例工程,也可以作为适用于普通应用场合的模板程序。SE文件夹和Utilities文件夹中包含了适用于其他应用场合的工程文件,如SerialApp,根据官方文档介绍,是适用于需要使用串行通信的工程项目。还有就是ZNP文件夹,提供的模板是适用于CC2530+MCU架构的应用场合的。

根据自己所需要的应用场合选择好了合适的工程模板之后,在此例中,我假设需要使用Zigbee来完成一个低码率的视频传输,所以我选择使用SerialApp中的内容。第一步是复制该文件夹并重命名为Video,如图2所示:

Zstack之新建工程_第2张图片

图2

第二步,点击进入Video文件夹,选择Source文件夹进入,把里面的三个文件重命名为Video和OSAL_Video.熟悉Zstack的朋友都知道,就是这三个文件,是我们使用Zstack所需要进行的重点修改和编写的地方了。如图3所示:

Zstack之新建工程_第3张图片

图3

第三步,打开Video文件夹下的Platform文件夹(在此中一般是CC2530DB),重命名里面所有的文件为Video,文件类型当然照旧不能变。一般是三个文件:ewd、ewp、eww..如图4所示:

Zstack之新建工程_第4张图片

图4

第四步,使用记事本方式打开Video.eww文件,该文件是IAR工作空间文件。并使用Video替换掉所有的SerialApp并保存修改结果(记事本的替换功能应该都会用吧,+_+,记事本程序一般在:C:\Windows\System32\notepad.exe),如图5所示:

Zstack之新建工程_第5张图片

图5

 然后同样的操作对该文件夹中的其余两个文件进行即可。这里要注意一点,一般情况下是3个,但是有的时候会有很多其他的文件,且也是以.eww、.ewd、.ewp结尾的,这些都要对其进行修改,具体可参照TI的官方文档。

第五步,回到刚才的Source文件夹,使用记事本打开Video.c文件,并同样全部替换SerialApp为Video字样,注意要匹配大小写。然后再对Video.h和OSAL_VIdeo.c进行同样的操作即可。这样就完成了新建一个Zstack工程的建立。

现在我们来测试一下新建工程是否正确,点击Video.eww IAR工作空间文件,如果有安装IAR软件的话,这时就会自动使用IAR打开这个工程,打开之后点击左边工程栏,右键使用Rebuild all,则软件将会对我们刚才新建立的工程进行编译,如图6所示:

Zstack之新建工程_第6张图片

图6

可以看出没有任何错误,说明这次的移植是成功的。而其中的关键就是CC2530DB文件夹里的三个文件.eww、.ewp、.ewd,这三个文件可以在IAR中通过Option进行各种设置,包括预包含,宏定义等,这些设置都是TI官方已经设置好了的。我们通过记事本打开这几个文件并替换之后,里面的各种设置就是完全符合我们自己的使用场景的了。

同样,我们可以很显而易见的知道,要将一个Zstack工程打包发送给他人或进行备份,不需要对整个Zstack文件夹进行备份,仅对工程文件夹里的两个子文件中内容进行打包或者备份即可。


以上内容基本根据TI的官方文档:Create New Application For CC2530DB描述所写,再加上自己在新建工程中的一些体会心得。

在此提供该文档下载地址:http://download.csdn.net/detail/firestarway/7247085

大家也可以在Zstack下的Documents文件夹中找到该文档。

你可能感兴趣的:(Zigbee学习)