Z stack工程编译设置学习笔记

来源:互联网 发布:mac出现五国怎么解决 编辑:程序博客网 时间:2024/05/17 04:23

1、Zstack开发环境是IAR,并且对于不同的Zstack实现平台,其对应的IAR编译器版本是不一样的,如果是基于CC2530的,官方推荐的IAR编译器版本是7.51,具体如下图所示:


而对于MCU+RF芯片架构的方案,由上可看出是需要其他版本的。

2、Zigbee设备可配置成三种模式:协调器,路由器和终端。

3、对于一个IAR工程,其编译设置位于两个位置,第一个位置是在所谓的linker control files,用于存放一些典型的,很少更改的配置参数,还有就是针对具体某个类型设备的linker control files文件中,这些文件都是在同一个位置的;用户自定义的宏定义和一般用于使能/关闭某种功能或者特征的这些个编译设置则一般位于IAR工程文件的option中。

4、具体地,Linker Control files在Zigbee工程的Tools文件夹下,该文件夹用于保存各种配置文件的,里面包含了多个.cfg文件,如下图所示:


在整个工程中,比较通用的各种编译设置都放在f8wconfig.cfg文件中,如设置Zigbee工程输出到设备后,设备的工作频道,PANID等等。在这里面可以对工作频道和其他一些配置参数进行修改,以使设备能够更好的适应工作环境。如下图所示:


另外的,对于三种不同类型的设备:协调器,路由器和终端,还有各自对应的不同的linker control files:f8wcoord.cfg、f8wEndev.cfg、f8wRouter.cfg三个。它们用于具体指定各类型设备的一些不同配置参数和特征。

在TI的官方手册中,如果需要增加宏定义,可以直接在新的一行添加即可,如果不需要某个预编译的宏,可以在前面使用//将其注释掉,这是一个比较好的习惯,因为以后确实可能会用到而又再次去查找很费力。

5、具体地, 首先在IAR工程文件中的预编译设置是存储在.ewp文件中的,使用记事本打开可以发现里面全是在Option里进行的设置。注意区别.eww是IAR的workspace文件.在菜单栏Project->Option->C/C++ Compiler->Preprocesseor界面中的Defined symbols栏里可以输入用户自己的一些宏定义,也可用于工程的而一些功能开关。如果要关闭某种功能,在其对应的宏前面加一个x即可屏蔽掉该宏,从而关闭该功能。

官方文档同样给出在使用该方式增加或减少宏时可能需要对工程源文件需要做一定的改动,如可能某些宏所对应功能的使用需要包含一些特定的库文件,或者替换一些库文件。

在这里,Zstack支持的宏有很多,详细的在TI官方文档 Z-Stack Compile Option(SWRA188)中有详细的描述,部分引征出来供参考:

大体分为四类预编译宏设置:1、通用的编译设置,这里面的很多设置在f8wconfig.cfg这个linker control file中被使用并被描述。


第二类是一般不做修改,基于目标平台的,这部分的编译设置一般默认即可。


第三类是用于使能或者关闭模拟和调试(MT)功能的预编译设置,如果使用MT,则首先需要包含MT_TASK这个总的MT任务宏。


第四类是zigbee 设备对象的预编译宏,根据官方手册的描述,这些宏主要用于ZDO中的消息控制,在工程目录中的ZDO文件夹下的ZDConfig.h文件中也被使用和描述,如下图所示:


并且通过在IAR工程文件中的Option->......compiler option中添加MT_ZDO_FUNC和MT_ZDO_MGMT可以快速使能所有ZDO和ZDO管理功能,从上图的ZDConfig.h文件中也可以看出这一点。

此仅作为读书笔记和参考,如有误和不解欢迎讨论:)

参考文档:Z-Stack Compiler Option(TI文档编号:SWRA188)

在此提供文档的下载链接,也可去TI官方下载该文档:http://download.csdn.net/detail/firestarway/7095301


0 0
原创粉丝点击