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.

[参考译文] CC2640R2F:将 iPhone8 (iOS13.6)与多角色配对失败

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1169412/cc2640r2f-pairing-iphone8-ios13-6-with-multi-role-fails

器件型号:CC2640R2F

大家好、团队、

我们的项目具有以下属性

SDK

simplelink_cc2640r2_sdk_5_30_00_03

IDE

IAR8.32.2.

参考项目

多角色

我们使用绑定、只使用工作配对模式、使用1个 SNV 页面。
   PairMode = GAPBOND_Pairing_mode_wait_for_Req;
   MIPTM = false;
   ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;
   绑定= true;
   replaceBonds = true;

我们已将 write 属性加密为 simpleProfilechar3UUID GATT_permit_encrypt_write

启动多角色(外设)并将其连接到 iPhone nrf/LightBlue 应用(客户端)后、写入特征3后、我们会在 iPhone 上弹出配对请求。
在选择"配对"时、我们观察到配对失败。

我还附加了捕获的配对请求和响应。


您能不能指导我们解决这一问题的原因是什么?

此致、
Niranjan

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

    Niranjan、您好!

    我指派了一名专家来帮助您的查询。 同时、您能否提供一些其他信息。 multi_role 示例中是否存在任何其他修改? 此行为是否仅在具有该特定操作系统版本的特定设备上出现? 该问题可在较新的设备或较新的操作系统版本中重现吗?

    此致、

    1月

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

    您好 Jan、

    我还运行了几个测试:
    1.我使用新的 iOS v16测试了上述多角色软件、并看到了相同的行为。
      a:此处唯一的更改是上面提到的更改、例如.e、gapbond 管理器初始化设置和加密特征3、
    2.我使用原始的简单外设示例项目刷写了我的设备(未做任何修改)、但没有看到 iOS 13.6或16的配对失败。
    3.我将原来的示例 multi_role.c 放入我的项目中、并将十六进制闪存到我的设备中-在 iOS 设备上再次观察到配对失败

    我希望这些意见有所帮助。 如果我需要检查其他内容、请告诉我。

    此致、
    Niranjan

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

    你好 Niranjan、

    感谢您提供的信息、请允许我抽出一些时间重现此问题。

    很明显、器件是否能够成功配对和读取加密特性的预期行为? 您似乎已在未经身份验证的 Just Works 配置中配置了器件。 您是否配置了安全连接? 如果您没有、我认为默认设置为 GAPBOND_SECURE_CONNECT_ALLOAD_Allow。 这些可能与我们看到的行为有关。 我记得过去曾发生过类似的事情、但让我首先重现问题、再次确认这是相同的情况。

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

    您好、Ammar:

    我本来希望能成功与 iOS 设备配对。
    在同一场景中、我没有看到 Android 设备有任何问题、我能够成功地与 Android 设备配对/绑定。

    我没有为安全连接配置任何内容。

    由于这对我们的产品发布至关重要、我希望我们能够尽早找到导致这种行为的原因。 谢谢。

    此致、
    Niranjan

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

    你好 Niranjan、

    感谢您的澄清、我将在明天下午更新此主题。 很抱歉,我没有到办公室来测试这种情况。

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

    您好、Ammar、

    好的,不用担心! 希望很快能收到您的回复

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

    你好 Niranjan、

    我仍在进行这方面的工作。 我使用 multi_role 重现了问题。 由于未指定的原因、配对似乎失败。 令人震惊的是、使用 simple_peripheral 无法重现此问题。 作为第二个数据点、您是否能够验证 simple_peripheral 上是否发生了此问题?

    我将继续研究这一点、并在我有更多信息时告知您。

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

    您好、Ammar:

    如前所述、我没有看到简单外设的配对问题。

    此致、
    Niranjan

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

    你好 Niranjan、

    感谢您的耐心。 我是根导致了所描述的行为。 器件正在用尽可用堆。 出现问题时、会发生内存分配故障、导致设备抛出配对失败未指定的原因代码。 由于 iOS 通常默认使用较高的 PDU 大小、因此在我的 Android 设备上看不到此问题。

    为了解决这个问题、我建议优化堆栈/应用的内存消耗、以允许足够的堆来避免内存分配失败。 此处的用户指南中提供了一些提示。 通过优化堆栈配置、我能够在加密 Char3时配对。 我可以通过降低 MAX_PDU_SIZE 来实现此目的。

    希望这对您有所帮助。

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

    您好、Ammar:

    感谢 您的分析

    我还有一些问题:
    由于 iOS 协商更高的 PDU、这将如何影响堆? 在常规通信(不进行配对)中、较高的 PDU 有效载荷没有问题。 在这种情况下是附加加密吗?
    2.您使用的 PDU 大小是多少?

    此致、
    Niranjan

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

    你好 Niranjan、

    [引用 userid="303981" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1169412/cc2640r2f-pairing-iphone8-ios13-6-with-multi-role-fails/4414721 #4414721"]这种情况下是否是额外的加密?

    正确。  由于较高的 PDU 大小使用更多的堆、 加密无法成功完成。 如果器件未配对、我不会期望看到这一点。

    [引用 userid="303981" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1169412/cc2640r2f-pairing-iphone8-ios13-6-with-multi-role-fails/4414721 #4414721"]2. 适合您的 PDU 大小是多少?[/报价]

    我通过将 PDU 大小降至27字节的最小大小进行了测试。 根据应用的不同、您可能能够提高。

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

    您好、Ammar:

    遗憾的是、保持较低的 PDU 大小将不符合我们的应用要求。 尤其是当我们使用移动设备进行 FOTA 传输时。 一个与此冲突的解决方案是不够的。

    我们正在优化我们的闪存使用、但即使在最佳情况下、如果堆是问题、我们也可能会再次遇到与 iOS 相同的问题。
    您能建议我们可以通过其他方式解决此问题吗?

    由于这是我们产品发布的关键主题、如果能尽快了解这一点、我将不胜感激。

    此致、
    Niranjan

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

    你好 Niranjan、

    [引用 userid="303981" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1169412/cc2640r2f-pairing-iphone8-ios13-6-with-multi-role-fails/4417141 #4417141"]我们正在优化我们的闪存使用、但即使在最佳情况下、如果堆是问题、我们也可能会再次遇到 iOS 问题。
    您能建议我们可以通过其他方式解决此问题吗?

    没错。 不幸的是、这里的最佳路径是释放足够的堆以避免内存故障。 您可以尝试将 高速缓存启用为 RAM并将辅助 RAM 启用 以释放更多内存。