TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee 3.0.2, 按照文档使用看门狗后,程序不断重启

我也碰到了这个问题。 我使用的是 zigbee 3.0.2 协议栈,然后在文档中建议位置:OSAL.c , osal_start_system 中 osal_run_system(); 后面加上了喂狗:

  {
    osal_run_system();
    
    // hhh, 2018.11.15 watchDog
#ifdef WDT_IN_PM1    
    WD_KICK();
#endif

现在现象是:关闭宏(不启动看门狗),程序正常; 打开宏,则程序没有反应(应该是看门狗在不断重启)。

看门狗具体使用方法,和这个一样:

blog.csdn.net/…/70173240

YiKai Chen:

有沒有設置定時事件讓CC2530醒來踢狗

user5798117:

回复 YiKai Chen:

进一步确认是这样的, 对路由没有问题,对协调器,初次烧录后有问题,大约要3~4分钟后恢复正常; 如果正常后,再重启,重新上电都没有问题。 但如果恢复出厂设置,则可烧录现象一致。

怀疑是初次烧录后,某些任务初始化 执行时间过长?

YiKai Chen:

回复 user5798117:

对协调器,初次烧录后有问题、請問是怎樣的问题?

Viki Shi:

看描述判断大概率是设置的问题,参考下这边的例子:daguichen.blog.163.com/…/

user5798117:

回复 YiKai Chen:

初次烧录后, zigbee 协调器模块3~4分钟之内,通过串口 发送消息给模块,模块都没有回应。 3~4分钟后,模块恢复正常,发送串口消息及时回应。

如果不用 看门狗, 则zigbee 协调器模块 启动后就可以发送串口消息给他,协调器模块也正常快速回复。

怀疑,在协调器启动时候,由于需要建立网络,某些任务执行时间可能会超过1秒,然后会被看门狗复位,造成协调器不停启动; 直至某次协调器成功初始化,于是系统恢复正常

YiKai Chen:

起始後設置定時事件讓CC2530醒來踢狗看看

user5798117:

回复 YiKai Chen:

/* If WDT is used, this is a good place to enable it. */
#if defined(WDT_IN_PM1)

#if defined( ZDO_COORDINATOR )if (osal_nv_item_len(0X0401)>0)// 不是首次WatchDogEnable( WDTIMX );
#elseWatchDogEnable( WDTIMX );
#endif

#endif

如果协调器是首次启动,则在组网后再使能 WatchDog, 问题解决。

判断是否是首次启动,用了自定义的nv项目.组网后,就写入0x0401 相应内容。 有没有更优雅的判断是否是首次组网方法?

user5798117:

回复 user5798117:

让串口初始化后,就发出一条消息,可以看到程序不断重启:

FE 07 FF FF FF 00 00
FE 07 FF FF FF 00 00
FE 07 FF FF FF 00 00
FE 07 FF FF FF 00 00

YiKai Chen:

回复 user5798117:

你有沒有起始後設置定時事件讓CC2530醒來踢狗看看?

赞(0)
未经允许不得转载:TI中文支持网 » zigbee 3.0.2, 按照文档使用看门狗后,程序不断重启
分享到: 更多 (0)