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.

[参考译文] 从 0710 升级到 0741 的 CC2642R-Q1:SDK 无法识别 NV 绑定信息

Guru**** 2538930 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1565487/cc2642r-q1-sdk-upgraded-from-0710-to-0741-cannot-recognize-nv-binding-information

器件型号:CC2642R-Q1


工具/软件:

您好、我在以下项目中。 C:\ti\simplelink_cc13xx_cc26xx_sdk_7_10_01_24\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\simple_peripheral。我们已经开发了我们的应用程序。 我们将完成 jutwork 与移动应用程序的配对。 我们的程序的 NVS 配置如下:

然后在以下工程中开发了我的新版本:C:\ti\simplelink_cc13xx_cc26xx_sdk_7_41_00_17\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\simple_peripheral
NVS 区域配置如下:

在 0710 SDK 版本下完成配对和绑定后、我升级到了 0741 SDK 版本、无需擦除和下载 NVS 和 ccfg。 但是、加密连接无法完成、我的手机会提示车辆配对信息丢失。
下图是我升级 0741 SDK 版本程序之前和之后的 NVS 读数比较
左侧是升级 0741 SDK 之前的 NVS 区域、右侧是升级 0741 SDK 之后的 NVS 区域

我对上述问题的理解是:
对于版本 0741、无法识别 SDK 0710 中同一例程的 NVS 区域的绑定信息。
此外、我已经确认可以识别同一 SDK 版本的升级。
请帮助确认问题及其原因、以及是否有解决方案可以使 0741 版本 SDK 识别 0710 版本 SDK 的 NVS 数据。

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

    您好、

    我会按以下步骤运行测试:

    1.在 SDK 7.10.01.24 中刷写 simple_peripheral、与手机绑定、从 0x52000 开始读出 NV

    2.在 SDK 7.41.00.17 中刷写 simple_peripheral、然后从 0x52000 开始读取 NV

    比较两个 NV、它们是相同的。  

    您能确保观察到相同的情况吗?

    BR。

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

    我在这里测试的结果是、从 52000 读取的 NV 是不同的。 比较结果显示在我之前发布的图片中。

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

    您可以看到、我之前提供的 NV 比较包括地址 52000。

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

    你(们)好

    1、今天,在您的工程师的帮助下,我们已经确定了问题的原因。 这是因为我在通用配置配置通用 BLE 设置中将地址模式设置为公共地址。 在 0741 的 SDK 中、地址模式设置为随机静态地址。 由于此更改、您的 SDK 已删除绑定信息。

    2、我想确认、如果 MAC 地址类型发生更改、您的 SDK 将需要删除绑定信息。 这是否必要? 是否有需要执行此操作的蓝牙核心规范? 如果有这样的要求、请提供这一要求的来源。 如果蓝牙核心规范或蓝牙技术联盟不要求这样做、您是否可以更改此做法? 即使 MAC 地址类型发生更改、是否也不能删除绑定信息?

    3、我在您的官方链接中看到了以下描述:

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gapbondmngr-cc13xx_cc26xx.html#gapbondmgr-examples-for-manipulating-bonding

    我在 SDK 0710 中的最大绑定数量为 10、在 SDK 0741 中为 30。 根据你的官方网站上的说明,如果我想升级,我必须
    擦除 Nv。
    现在 MAC 地址类型已更改、您的 SDK 已删除绑定信息。 在这种情况下、我是否还需要完全擦除 NV?

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

    您好、  

    如果地址类型发生更改、该器件将被识别为不同的器件。 因此、旧的绑定信息不适用于“新“器件、这是一种正常行为。

    如果增加绑定记录的数量、则 完整的 NV 擦除是“必须“操作。

    BR。  

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

    你(们)好  

    您的答案  “如果增加绑定记录的数量、则完整的 NV 擦除是“必须“操作。“

    为什么必须这样做? 请您向我解释一下、如果不执行所有内核擦除、可能会有什么问题?

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

    因为每个绑定信息都需要写入 NV。 更改 GAP_BONDINGS_MAX 表示不同数量的 NV 条目(最大值)。 存储在 NV 中的旧信息可能与需要在较新配置下存储的信息发生冲突。 这将在加密过程中导致异常行为。