我用的是TI ZIGBEE2007的协议栈,由于之前默认对协调器编译NV_INIT和NV_RESTORE两个选项
而其他节点只有NV_INIT这个选项所以
每次我用协调器重新上电,所有的节点都是重新入网而且协调器并不会擦出以前的节点,而协调器是有网络节点上限的,所以基本上重新加入几次就满了,然后就不能继续加入了,关于这个问题,
首先看看编译项 NV_INIT和NV_RESTORE的区别:(此处区别转自风清扬的博客:
http://blog.sina.com.cn/s/blog_5356e47901013ovv.html)
NV_INIT保存在nv的内容主要是网络或者节点的配置参数,在节点运行中这些参数很少变化或者几乎不会有变化。NV_INIT选项保存的所有参数可以在结构体zgItemTable中查看到。
NV_RESTORE选项保存的内容主要是节点运行过程中的状态量,借助这个特性,节点在掉电或者复位之后不需要无线电通讯就可以恢复到之前的网络连接状态。NV_RESTORE保存的内容主要有网络层数据库NIB、设备关联表、绑定表、路由表等。
所以可以无论协调器还是路由还是终端的情况下编译选项中把这两个都加入,经验证可以不用每次重复刷写协调器FLASH,并且重新上电可以马上恢复。