在Z-stack增加一个新的设备,如何添加源文件

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/geek_monkey/article/details/51097174

  用户如果想在Z-stack协议栈里边添加自己的设备也是很简单的,比如说添加了一个新的传感器,我们取名为test。
首先要增加一个编译配置
这里写图片描述
  下图圈起来的下拉菜单是选择基于某个配置,如果你想增加一个路由设备,最好就基于一个现成的路由设备来配置。如果想增加一个终端节点,最好基于现成的终端节点来配置。如果你的协议栈里边还没有一个配置好的设备类型,也没有关系,后边的文章会告诉大家该怎么配置。我这里有一个现成的光敏传感器的终端节点,所以就拿来用了。
这里写图片描述
  完成之后点击OK,会发现workspace的下拉菜单中出现了我们刚刚建立的“工作区域”。所谓的工作区域,跟别的单片机中的“工程”是相像的,但是由于协议栈做了很多的代码复用,不同的终端节点只有少量的代码是不一样的,为不同的节点建立不同的“工程”显然是比较浪费的。故不同的workspace有不同编译条件,即可实现复用代码,节省空间。
这里写图片描述
  然后在App文件夹图标上点击右键,新建group。不妨将其也命名为test。
  在workspace的下拉菜单会看到刚刚建立的test group
这里写图片描述
这里写图片描述

  但此时会看到,我们刚刚基于photores配置,这个文件夹也包括在内,这是我们不需要的,不应当将其包括到工作空间,可以在其图标上右键,然后勾选Exclude from build,点击OK即可看到这个文件夹图标也变成灰色,表示不包括在这个工作区域了。
这里写图片描述
  现test文件夹里暂时没有文件,可在图标上右键,添加文件Add files

  虽然新建group的时候IAR帮助我们新建了一个文件夹,但是不建议将源码放入此文件夹。因为IAR建立的文件夹默认是放置生成的文件的。建议在CC2530DB的同级目录下储存源码。我的相对路径是\ZStack-CC2530-2.5.1a\Projects\zstack\Utilities\SerialApp
  可能有的用户是在ZStack-CC2530-2.5.1a\Projects\zstack\Samples\GenericApp的目录下,大同小异。
可新建两个文本文档,然后改名为test.c和test.h
这里写图片描述
  然后Add files 并选中它们,点击OK,然后会看到这两个文件已经添加到刚刚的文件夹之下了。
这里写图片描述
这里写图片描述
  然后就是写代码了,根据自己的业务需要写代码即可
  为了简单起见,我就把刚刚的photores的代码复制过来。注意,有些条件编译的地方是不一样的。如有的地方可能有如下定义

#ifdef PHOTO
  #include "Photo.h"
#endif

但是自己显然需要的是

#ifdef TEST
  #include "test.h"
#endif

  那么基于photo的配置显然是不合适的,在这里修改:
  按ALT+F7调出选项,如下图修改。
这里写图片描述
  注意,上图中Additional include …是查找文件的路径,如果一堆文件找不到而报错可查看这个地方是否包括了所需文件的路径;
注意,此处的编译条件修改是很常见的功能,如有些设备需要LCD屏幕而另一些不需要的时候,可以在此处填写
这里写图片描述
  代码里边在需要LCD的时候

#ifdef LCD_SUPPORTED
…………………………
#endif

  以上算是新建了一个设备的步骤,如果代码无误,这个设备就可以加入协议栈了。但是我们的工作还没有结束,因为新建这样的一个workspace与file对其他的workspace是有影响的。回到Photoresist,会看到新建的test也被包括在workspace里了。这是我们不需要的,可在图标上右键,把干扰排除。其他的workspace也会受到这个新建test的workspace的影响,请注意。
这里写图片描述
这里写图片描述
以上

展开阅读全文

没有更多推荐了,返回首页