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.

[参考译文] CC2745R10-Q1:在调用 GATTServ.CharCfg () 而不交换的情况下、它将在 Basic App_Process 工程中运行到硬故障

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1662635/cc2745r10-q1-after-calling-gattservapp_processcharcfg-without-exchanging-mtu-it-will-run-to-hardfault-in-basic-ble-project

器件型号: CC2745R10-Q1

您好的团队、

如标题所述,如果我不交换 MTU,在调用 GATTServo App_Process CharCfg() 后,设备将进入 hardfault。

SDK:simplelink_lowpower_f3_SDK_9_20_01_21

请将 simple_gatt_profile.c 复制 到 Basic BLE 项目中。 该问题将重新印发。

谢谢。

此致、

Connor。

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

    尊敬的 Connor:

    在当前的 BLE 栈实现中、它必须在发送  大于 (ATT_MTU - 3) 字节的数据之前交换 MTU 大小。

    当调用 GATTServo App_Process、CharCfg () 时、BLE 栈将分配一个 (ATT_MTU - 3) 字节缓冲区。

    当您发送超过 (ATT_MTU - 3) 个字节时、由于 ATT_MTU 大小不匹配、将不会发送数据。

    但它仍然 从堆中分配 (ATT_MTU - 3) 个字节、然后从 SimpleGattProfile_readAttrCB 释放长度。 它导致内存损坏。  

    此致、
    Kevin

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

    尊敬的 Kevin:

    非常感谢您的答复。

    根据我的理解、它应该返回错误代码、而不是输入硬故障/出现内存损坏。 我们会在下一个 SDK 中修复它吗?

    此致。

    Connor。

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

    Connor、

    是的、我提交了一个错误、我们将在下一个 SDK 中修复它

    此致、
    Kevin