This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1352R:器件 OAD 类型更改

Guru**** 2555630 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/954962/cc1352r-device-oad-type-change

器件型号:CC1352R

你好!

我有以下设置:2 BLE+Zbee DMM 板、OAD 应用。


当尝试通过 OAD 更改器件类型时、我遇到了以下问题。 为了重现此问题、我执行了以下操作:

我将器件上的 DMM 开关固件刷写为出厂固件、然后使用 OAD 将其更新为类型协调器。 我将一些器件通信到 NWK 中、然后使用 OAD 重新刷写交换机固件。 这使设备无法进入网络(无法通信)。如果我们尝试离开网络、则在重新启动后、设备无法加入任何 NWK、这也适用。
此外、通过刷新设备上的协调器固件并"离开网络"、设备不再通信。  

为了解决此问题、我执行了完全闪存擦除。 我认为从一个 FW 切换到另一个 FW 时、Zbee 闪存表中有一些内容卡住。  
是否有解决此问题的方法? 或者我们如何对 NVSIINTERNAL 执行批量擦除-由于返回空(我认为是因为它被 zbee 堆栈阻止)、NVSOpen 无法打开它。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cosmin、

    Zigbee OAD 项目的设计使之前的网络信息在更新过程中保留在 NV 存储器中、这样器件就可以重新加入或继续运行之前的网络、而不会中断服务。  但是、这也会干扰切换设备角色的能力、这些角色必须在试运行前确定。  为了实现此功能、您需要在 OAD 完成后执行一个工厂复位(Zstackapi_BdbResetLocalActionReq)。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这正是我所期望的、通过调用 Zstackapi_BdbResetLocalActionReq、我希望器件能够在重新启动后进行通信

    然而,情况并非如此,我们仍然无法表达。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从何处调用 Zstackapi_BdbResetLocalActionReq?  此 API 最重要的部分是 bdb_setFN、它会导致 bdb_setNodeIsOnANetwork (false); zgWriteStartupOptions (ZG_startup_set、ZCD_STARTOPT_DEFAULT_CONFIG_STATE | ZCD_STARTOPT_DEFAULT_NETWORK_STATE);因此请调试您的应用以确保这些指令发生。  在 LAUNCHXL-CC1352R 示例中、当在启动时按住 BTN-2时、也可以进行新的出厂复位、因为您可以通过测试确认器件是否能够在执行按钮出厂复位后进行调试?

    此致、
    Ryan