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:使用最新 SDK、BLE 广播初始化失败

Guru**** 2933630 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1654782/cc2340r5-ble-advertising-init-failed-with-latest-sdk

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

您好、  

我们的产品中采用 CC2340R53 芯片组。 此前、我们使用的是较旧版本的 simplelink 低功耗 SDK (8.10.) 因为较新版本的 SDK 已禁用通过 logsinkbuf 进行日志记录。

我们现在发现了其他记录方式、因此决定使用新的 SDK 版本 9.20、该版本于 2026 年 5 月发布。  

在最新的 SDK 中、我们采用了基本 BLE 示例并将我们的所有文件夹目录移植到 SDK 示例中。 大多数 THR 功能都正常工作、但我们看到与广播相关的 API 发生了变化。  

我们目前面临“BleConfig_initAdvSets“的问题、每次调用 API 时、API 都会返回 0x13 作为错误代码。 我们参考了“basic_ble“示例、并确保了从“StackInitDoneHandler“中调用 API。 请在下面找到 API 使用情况的代码片段。

    Uint8_t 外设 AdvHandlesStatuss[BLE_CONFIG_NUM_ADV_SETTS];
    BleConfig_initAdvSets (advertisementhandle、peripheralAdvHandlesStatuss);
    If(外围设备高级状态[0]!=成功)
    {
      errCode = ERR_FAILED;
    }

其他信息:

  1. 我们已将器件角色配置为“外设+中央器件“。
  2. 我们的广播数据长度为 25 字节。 扫描响应中没有数据。
  3. 我们使用旧广播模式、未启用扩展广播。
  4. 我们仅启用一个广播集。
  5. 广播 INIT 之前会执行中央 INIT 和与扫描相关的 INIT。

请尽快帮助我们解决此问题、因为这是阻止我们更新到最新 SDK 的唯一阻止项目。

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

    您好!

     BleConfig_initAdvSets 函数应在 ti_ble_config.c 文件中定义并由 SysConfig 生成。 该函数随后调用 BLEAppUtil_initAdvSet 和 BLEAppUtil_initHostAdvSet。 然后 3 个函数可以返回错误: GapAdv_create、 GapAdv_loadByHandle 和 GapAdv_setEventMask。 我建议您在 BLEAppUtil_initHostAdvSet 中设置几个断点以查看哪个函数返回 0x13。

    从我读取的数据来看、错误 0x13 意味着“bleMemAllocError“、这种情况在调用内存分配函数失败时发生。

    此致、
    Lea