本人学习Zigbee有一段时间了,想把一些基础和学习心得记录下来,以便和广大Zigbee发烧友交流探讨,也作为一种学习笔记可以复习参考。我想把新建Zstack工程来作为Zigbee学习的第一篇文章,初来乍到,有心的朋友多多指教。
在新建工程之前,我们要做的是要安装IAR编译软件,并且下载ZStack协议栈,我用的版本是ZStack-CC2530-2.3.1-1.4.0,这是TI公司的协议栈,在官网上或者百度一下都能下载的到的。前期准备工作就绪之后,正式进入主题,这里说的新建一个Zigbee工程是以TI的Zstack协议栈里的例子作为模板来修改成自己的协议栈,如果光自己新建,要写的代码实在太多,所以我们调用原始的参考例子来新建,然后添加一些代码程序来实现自己要的功能就行了。下面来实现具体步骤:
第一,新建一个文件夹,将ZStack-CC2530-2.3.1-1.4.0中的文件都复制到自己新建的文件夹中,其中Documents是一些对协议栈的开发指导,可以不用复制,TOOLS文件夹也是可要可不要的。然后,进入projects文件夹下的zstack文件夹,如下图所示,其中HomeAutomation,samples,SE,utilities,ZNP都是TI提供的example,我们可以选择自己需要的例子来修改,那么别的例子就可以删除,比如我要使用samples文件夹中的GenericApp例程,就可以将其他文件夹都删除,切记ZMain文件夹和Libraries,Tools文件夹不能删除,否则会导致编译错误,以为在协议栈中涉及到这三个文件夹中的APP函数和一些定义。
第二,接下来就要重命名文件夹,比如我用PuppyApp来取代GenericApp,然后进入PuppyApp文件夹有两个文件夹,分别是CC2530DB和Source,我们要将其内部的和GenericApp有关的所有名称都改成自己的名称,首先进入CC2530DB文件夹,毫不犹豫的将三个文件名都改成PuppyApp.后缀,完成之后只是表面上的修改而已,这时打开PuppyApp.eww的结果如图:
正确的做法是再将这三个文件用记事本打开,将文件中的所有GenericApp都替换为PuppyApp,然后我们可以进入IAR进行编译,MAKE一下以后发现Fatal Error[Pe005]: could not open source file "C:\Documents and Settings\Administrator\桌面\puppygod text2\Projects\zstack\Samples\PuppyApp\Source\ 。
第三,要解决上述问题,不难发现错误是无法打开Source文件下的PuppyApp.c文件,那我们就去寻找Source文件夹下的文件,发现也有三个文件,我们依旧对它们进行重命名,将GenericApp改成PuppyApp,并将其用记事本打开,查询替换完成之后再make一下,发现没有错误,如图所示:
但是这并没有完成,细心的同学不难发现代码中好多定义都是GENERICXXXX之类的,我们还是要将其改为自己的名字比较好,为了后期能比较清晰,不容易在宏定义上犯错误,所以我们将刚才三个文件中GENERICAPP都改成PUPPYAPP就行了,当然OSAL_PuppyApp中其实是没有GENERICAPP的,这一点改不改也没关系。