主题中讨论的其他器件:SysConfig、
工具/软件:
您好:
我正在使用 CC2350R5 开发 Zigbee 器件、但我遇到引导问题。
我的器件通常保持在关断模式、并通过按下按钮来唤醒。 虽然此过程在大多数时间都有效、但某些器件在启动序列期间经常会冻结、需要硬复位才能恢复。
我已将问题隔离到代码挂起的 Z-Boss 堆栈初始化。 这种情况似乎与论坛上一篇帖子中描述的情况相同(帖子:“重启后初始化冻结“)
我可以通过修改极小的开/关 ZigBee 开关示例可靠地重现问题。 错误通常只需快速按下唤醒按钮就会在几秒钟内出现。 我还能够在正常调试会话期间触发冻结(通过使用 IDE 上的 RESET 按钮反复重新启动固件)、这表明该问题并非只能从 SHUTDOWN 模式唤醒。
在调试器冻结期间、我捕获了调用栈、它卡在引用帖子中提到的完全相同的函数中。 请参见下图:

下面、我的示例基于开/关开关示例、可用于重现错误。 只需继续按按钮、直到绿色 LED 保持亮起、表示 ZBoss init 函数未返回、并且设备不再重新启动。

----------------------------------------------------------------------------------------
...
------------------------------------------------------------------------
作为一种权变措施、我可以尝试使用看门狗来检测这种情况并重新启动器件、但我不喜欢这个“解决方案“、它也可能导致循环消耗整个电池。
什么可能导致堆栈在随机数生成过程中无限期挂起? 考虑到我们既没有访问栈代码以进行调试、该函数不应该返回错误、也不应该调用可访问用户应用的中止函数(作为“zB_ti_f3_abort"而“而不而不是冻结)?
这对我的应用来说是一个关键问题、在现场复位器件的唯一方法是移除电池、这对终端用户来说是一个非常困难的过程。
如有任何帮助、将不胜感激。
谢谢你。













