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.

[参考译文] CC2340R5:刷写器件后、绑定信息将被擦除

Guru**** 2326490 points
Other Parts Discussed in Thread: CC2340R5, UNIFLASH, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1496178/cc2340r5-bonding-information-getting-erased-upon-reflashing-device

器件型号:CC2340R5
Thread 中讨论的其他器件: UNIFLASHSYSCONFIG

工具/软件:

您好、

我有一个配置为外设的 CC2340R5。 目前、我按如下所示添加了配对功能:

工作正常、但如果我使用 uniflash 重新刷新硬件、绑定信息将被删除、我必须尝试与中央设备重新配对。 是否也有办法在刷新后保留债券信息? 因为如果我的产品需要在现场重新刷新、或者我需要执行 OAD、则如果删除了绑定信息、我必须进行预期之外的全新配对。

另外、如果我们进行无线固件更新、绑定信息将会保留还是会被删除?

此外,如果我的外围设备中启用了 LRU 绑定替换,且中央设备从其内存中删除了绑定信息,那么我是否可以自动尝试与另一个中央设备重新配对和绑定,或者我需要做一些事情来尝试与新设备绑定?

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

    您好、

    您可以在 CCFG 中指定刷写时不希望擦除的扇区。 这可用于保存绑定信息。 执行 OAD 更新不应删除绑定、因为这些绑定存储在单独的闪存区域中。 使用 LRU、所有绑定替换都应自动进行。

    此致、

    1月

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

    您好、Jan、

    您能否指定更新 CCFG 时需要遵循的步骤、以便在刷写后不擦除绑定信息?

    此外、我正在取消中央器件的外设配对、但我无法 在外设上触发 GAP_Bond_LOSS_EVENT。 原因可能是什么?

    void Peripheral_GAPConnEventHandler (Uint32事件、BLEAppUtil_msgHdr_t *pMsgData)

    切换(事件)

    用例 BLEAPPUTIL_LINK_RESIDEND_EVENT:

    /*检查是否达到允许的最大连接数*/
    if(linkDB_NumActive()< linkDB_NumConns())

    /*开始广告,因为有更多的空间连接*/
    BLEAppUtil_advStart (外设 AdvHandle_1、&advSetStartParamsSet_1);
    }
    暴露

    /*停止广告,因为没有更多的连接空间*/
    BLEAppUtil_advStop (外设 AdvHandle_1);
    }
    休息;
    }

    使用 BLEAPPUTIL_LINK_TERMINATE_EVENT:

    BLEAppUtil_advStart (外设 AdvHandle_1、&advSetStartParamsSet_1);
    休息;
    }
    大小写 GAP_Bond_LOSS_EVENT:

    Log_printf (LogModule0、Log_info、"绑定信息丢失");
    休息;
    }
    默认值:

    休息;
    }
    }
    }

    请找到我的代码、我尝试使用 BLEAPPUTIL_Bond_LOSS_EVENT、但仍然没有触发。 请注意、我还在事件掩码中添加了事件。

    还有 Jan 请告诉我,如果 centerl 上删除了债券信息,它会在外围设备上自动删除,还是我必须手动删除它?

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

    您好、

    您能否指定更新 CCFG 以便在刷写后不擦除绑定信息所需遵循的步骤?

    可在 SysConfig 中指定受保护的扇区。

    此外、我正在中央器件取消配对、但我无法获得 在外设上触发的 GAP_Bond_LOSS_EVENT。 原因可能是什么?

    您能否说明如何取消配对以及其他设备是什么?

    也请告诉我、如果 centerl 上删除了绑定信息、它会在外围设备上自动删除还是我必须手动删除它?

    绑定通过 API 调用或 LRU 替换策略删除。

    此致、

    1月

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

    您好、Jan、

    t 受保护的扇区可在 SysConfig 中指定。

    目前、这是相应的设置。 此处需要进行哪些修改?

    您能否说明如何取消配对以及其他设备是什么?

    请注意、我的外围设备正在发起配对、并且中央设备(手机)接受配对

    我使用的是手机作为中央设备、内部使用的是 nrf connect 应用程序。 因此,首先我从 nrf connect 应用程序删除绑定信息,然后我从手机的蓝牙设置取消配对。 但是、不会触发该事件。 如果至少触发了绑定、我可以了解对等器件已删除绑定信息、并根据该事件触发、我可以进行 API 调用以从外设中擦除绑定。 但不会触发键合线丢失事件。 请分享代码、说明它将如何以及何时发生?

    请帮助解决1月的问题

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

    您好、

    关于 BLEAPPUTIL_Bond_LOSS_EVENT 事件、您是否已将其添加到事件掩码中? 必须将其添加到掩码中、应用程序才能接收掩码。

    对于实际扇区、这将取决于定义 NVS_INTERNAL 区域的位置。 您需要更新 Erase/Retain 字段而不需要其他字段。 需要说明的是、只有在通过 uniflash 刷写时要保留绑定信息时才需要此操作。 执行 OAD 时不需要此功能。 OAD 不会覆盖绑定信息。

    此致、

    1月

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

    您好、Jan、

    感谢您的信息。 我将详细介绍 NVS。

    关于 BLEAPPUTIL_Bond_LOSS_EVENT 事件、您是否已将其添加到事件掩码中?  

    关于这一点、我已经在上一个答复中提到、它已添加到事件掩码中。 此外、我在论坛上也遇到了一个类似的问题、在这个问题上、另一个人也面临这个问题、但论坛没有提供解决办法。 你可以检查一下这个,或者至少尝试为我重现它,并告诉我发生了什么。 这是我希望在应用程序中收到的一个非常关键的事件。

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

    您好、Jan、

    是否有任何更新?

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

    您好、

    我能够重现你所看到的行为。 我相信我们可以通过以下方式解决此问题:让中央通知外围设备它将删除绑定;或者在尝试重新连接之前配对的设备需要新绑定时、我们可以删除旧绑定。 这可以通过使用 LRU 绑定删除策略自动发生。

    此致、

    1月

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

    您好、Jan、

    当您说出以下内容时、您是否要求中央设备通过服务向外围设备写入内容来通知它? 因此这将是一个自定义实现、我们无法预计它适用于所有器件。

    中心通知外设它将删除绑定或尝试重新连接

    是的、我们看到下面的行为运行良好、但我们的查询是关于" BLEAPPUTIL_Bond_LOSS_EVENT "在什么情况下、此事件会触发、我们如何处理、这正是我们试图理解的。  

    如您所述、LRU 缓存策略正在删除绑定信息、以防中心忘记了以前绑定的设备的绑定信息、并需要一个新的绑定、但我们更感兴趣" BLEAPPUTIL_Bond_LOSS_EVENT "。  

    或者在尝试重新连接之前配对的设备需要新绑定时、我们可以删除旧绑定。 这可以通过使用 LRU 绑定删除策略自动发生。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jan、

    您能告诉我为什么该事件没有被触发、但是吗? 它不是从您这边搬运的。 此外、当配对开始时、 BLEAPPUTIL_PAIRING_STATE_STARTED 被调用两次、原因可能是什么? 下面是日志:

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

    您好、

    我相信当粘接过程中的键丢失时(例如发生错误)、就会发生键丢失事件。 我不认为当对等方忘记绑定时会发生此事件、因为设备无法知道何时发生此情况。 您能否确认已启动配对事件的状态是什么?

    此致、

    1月

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

    您好、Jan、

    但 API 文档说的内容有所不同。

    https://software-dl.ti.com/simplelink/esd/simplelink_lowpower_f3_sdk/7.20.00.29/exports/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___g_a_p___event___i_ds.html#ga2fc81216eed4f34e8ae4b4f60e685ab4

    它与你现在解释的是矛盾的。  请确认该怎么做?

    配对已开始事件显示成功。 我已经检查了状态。 但每次,它被触发两次。 你能重现这个问题并告诉我,如果你遇到同样的问题,即使它被触发两次,也不会有任何问题吗?

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

    您好、

    我很抱歉、明白了。 我以为我能忍住的。" 我将与研发部门联系、询问他们这是如何实际工作的。 就双人配对开始问题、预计不会有任何问题。 由于某种原因、可能是由于配对开始和绑定开始是两个不同的事件、但这应该可以。

    此致、

    1月

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

    您好、Jan、

    没问题。 请您确认我是否可以通过我的外围设备中的任何方式获得债券丢失事件回调。

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

    您好、

    仅通过研发部门确认、此事件不受支持、似乎是旧代码的遗留问题。 如果对等设备删除其一侧的绑定信息、则您的设备在尝试在将来的连接中修复时会发现。

    此致、

    1月

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

    您好、Jan、

    感谢您的更新。