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.

[参考译文] CC2651R3:在绑定存储和删除中观察到的不一致

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1294068/cc2651r3-observed-inconsistency-in-bond-storage-and-deletion

器件型号:CC2651R3
主题中讨论的其他器件: SysConfig

您好、TI 支持团队、

在我的项目中、我们实现了安全通道功能。 我们使用 GAP 键合管理器 API 来处理功能。

目前我们观察到与绑定删除有关的几个问题。 这意味着我们发现债券不会根据"最近最少使用"的方法被删除,并显示出不一致的行为。 为了清楚了解 SNV 中的键合存储是如何处理的、我们有如下一些疑问:

-如何存储绑定,当信息被写入 SNV 时检查什么 ?

-有一个新的债券索引注册,如果再次智能手机债券(在之前的债券为同一智能手机被删除后) ?

- gapbondmgr 是在启动时加载 SNV 的 RAM 副本,还是在何时发生?

如果您能及时提供支持、那将非常好、因为我们的发布计划即将结束。

注意:我们在项目中使用了 BLEE SDK 6.20和 TI CC2651R3微控制器。

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

    您好!

    感谢您与我们联系。

    首先、我建议参考中提供的 GAP 债券经理实施 \source\ti\ble5stack_flash\host\gapbondmgr.c、因为它可能有助于您的理解。 此外、您可能还希望查看 https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.01.24/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gapbondmngr-cc13xx_cc26xx.html、

    -如何存储绑定,当信息写入 SNV 时检查什么 ?[/报价]

    我建议在接收到 GAP_Authentication_Complete_event 事件后、查看在 gapbondmgr.c 中执行的代码。 请特别查看 gapBondMgrAddBond 和 gapBondMgrSaveBond。

    -如果智能手机再次绑定(在删除了同一智能手机的先前绑定之后),是否注册了新的绑定索引 ?

    假设新的键合已被擦除、堆栈不会跟踪先前存储的键合。
    但是、如果器件处于连接中并且未配置为在连接中擦除键合、则键合可能无法"立即"擦除。 您可以查看 gapbondmgr.c.中的变量"gapBond_eraseBondInConnFlag"(另请参阅参数为 GAPBOND_ERASE_BON_IN_CONN 的 Mgr_Set 中的变量"gapBond_eraseBondInConnFlag")。

    –gapbondmgr 是否在启动时加载 SNV 的 RAM 副本?

    在 gapbondmgr.c 中,函数 gapBondMgrReadBonds()用于从闪存读取 bonds 并将其存储在 RAM 中。
    绑定 Mgr_Init 的 RAM 副本会在不同条件下更新,尤其是在 GAP Bond 管理器初始化时(参见 GAPB()函数)。

    我希望这将有所帮助、

    如果您需要更多支持、请告诉我、

    此致、

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

    您好、Clement、

    感谢您的立即响应。 我们正在进行这项工作。  

    我还有以下几个疑问:

    1. 键合条目中的客户端特征配置(CCC)-

       A: 它实际上复制了什么?

       

       如果我理解正确、那么需要加密的特征数量是多少? 为什么这是必要的以及它需要在什么地方       是否已配置、在 SysConfig 中?

       B. 这是否取决于外设公开的 CCCD 数量?

    2.   '增加绑定项的数量:-

       A: 我需要将绑定数量增加到23、但在 SysConfig 中、它将我限制为21、因为 PHY 设置为2M、我无法将其更改为1M。 我可以知道为什么(它显示已被许可锁定)?

       

       B.   另外、如果我们需要配置超过13个键合、那么我们应该修改 bcomdef.h 中的某些参数、如下屏幕截图所示:

       但当我签入 bcomdef.h SDK 文件时、屏幕上显示已经进行了修改。 请更正、如果这是我们需要进行的更改或 SDK 中已经进行了更改。 ?

        

    提前感谢您的支持。

       

       

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

    您好!

    1.每个绑定条目都跟踪为支持一个绑定的 GATT 属性设置的客户端特征配置。
    通常、客户端使用 CCC 启用针对特定特征的通知/指示。
    请注意、对于具有一个属性的所有属性、即无论特征的权限是否为、都应保持 CCC。
    假设每个 CCC 有一个 CCCD (即 CCC Descriptor)、则是的、要保留的 CCC 数量等于公开的 CCCD 数量。 更直接地说、要保留在绑定条目中的 CCC 数量等于 GATT 表中公开的 CCC 数量。

    请给我一些额外的时间来回答第二个问题。

    此致、

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

    您好、Clement、

    感谢您的回复。

    因此,这意味着无论特征是否加密,总 CCC 应该是 CCCD 公开的。  

    因为举例来说、如果我们有5个特征、其中只有4个特征会被加密。 我们仍然应该保持 CCC 为5吗?


    谢谢。

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

    您好!

    因此,无论特征是否加密,总 CCC 都应该是公开的 CCCD。  [/报价]

    正确!

    例如,如果我们有5个特征,其中只有4个特征是加密的。 我们仍然应该保持 CCC 为5 ?[/引号]

    正确句子"如果您有5个特征 使用 CCC 其中4个特征仅加密、您应确保所有5个 CCC 均保留在 NV 中。" 不这样做可能会影响用户体验、因为用户必须在每次新连接时重新启用通知。

    此致、

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

    尊敬的 Ddnr:

    进展如何? 您是否取得了一些进展?

       A: 我需要将绑定数量增加到23、但在 SysConfig 中、它将我限制为21、因为 PHY 设置为2M、我无法将其更改为1M。 我可以知道为什么(它显示已被权限锁定)?

    我已经研究了债券数量的限制。 SysConfig 在启用超过21个键合时发出警告(可以抑制)。

    只要在2M PHY 上没有完成连接启动、就可以忽略该警告。 更多详细信息、请参阅此处: https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.01.24/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gapbondmngr-cc13xx_cc26xx.html#increasing-number-of-bonding-entries

    另外、不能禁止使用2M PHY。 不过、只要您未使用2M PHY 作为辅助 PHY 启用可连接的扩展广播、就没有使用2M PHY 发起连接的风险。

      B.   另外、如果我们需要配置超过13个键合、那么我们应该修改 bcomdef.h 中的某些参数、如下屏幕截图所示:

       但当我签入 bcomdef.h SDK 文件时、屏幕上显示已经进行了修改。 请更正、如果这是我们需要进行的更改或 SDK 中已经进行了更改。 ?

    [/报价]

    您是对的! 现在所需的更改直接在代码中实现-因此您无需执行更多的更改。

    自实施此更改后、文档尚未更新、但我将确保我们将改进此情况。

    此致、

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

    您好!

    我已拆分主题并在此处进行解答: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1302799/re-cc2651r3-observed-inconsistency-in-bond-storage-and-deletion

    感谢您的理解。

    此致、