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.

[参考译文] RTOS/CC2640R2F:GAP_DeviceInit 异常或 INVALIDPARAMETER

Guru**** 2562340 points
Other Parts Discussed in Thread: CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/587267/rtos-cc2640r2f-gap_deviceinit-exception-or-invalidparameter

器件型号:CC2640R2F
主题中讨论的其他器件:CC2640

工具/软件:TI-RTOS

在启动过程中,当我调用 GAP_DeviceInit()时,我收到异常或失败(返回代码:INVALIDPARAMETER)。

除了 profileRole 参数外、这两个调用都是相同的。

当使用 profileRole = 0x00 (即未初始化)调用 GAP_DeviceInit 时、我获得返回代码 INVALIDPARAMETER

 当使用 profileRole = 0x04 (即 GAP_PROFILE_PERipheral)调用 GAP_DeviceInit 时、我会得到一个异常、如下所示。

如何解决此问题以便成功调用 GAP_DeviceInit()?

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

    我从未在 CC2640R2 LaunchPad 上的任何嵌入式示例应用中遇到过这种情况。 请注意、GAP_DeviceInit 由 GAPRole 任务调用。 您能否提供有关如何在 LaunchPad 上重现此问题的更多上下文?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我最初没有修改 GAPRole 任务代码、但注意到无法在我的应用任务中设置广播数据。 深入了解这一点、我开始检查一些 GAP_ API 调用的返回代码、发现 GAP_DeviceInit 在使用 INVALIDPADRAMETER 时失败(文档表明这是由于传递了错误的 GapProfile 参数)。 然后、我在 GAP_DeviceInit 调用中尝试硬编码 GAP_PROFILE_PERipheral (0x04)、并看到异常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是否与您在另 一篇文章中移植的 CC2640至 CC2640R2F 项目相关? 如果是、您是否遵循了移植指南? 这可能是不匹配的头文件。

    祝你一切顺利

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 它是同一个项目。 我遵循了移植指南。

    哪种报头不匹配会导致这种情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Matt、

    此错误是来自库存 simple_peripheral 示例还是来自 SDK (也是哪个 SDK 版本)的其他示例? 如果您遵循了移植指南、您从哪个版本开始、移植到哪个版本?

    正如 Jeff 之前提到的,GAP 绑定管理器通常调用 GAP_DeviceInit()(请参阅 GAPRole_StartDevice())。 您是单独调用 GAP_DeviceInit、还是仅通过 Bond Manager 调用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Tom、

    首先、感谢您的快速回答。 我真的很感激。

    我有一个现有的 CC2640项目、它工作良好且稳定。 为了使用 OAD、我将项目迁移到 CC2640R2硬件(为了获得额外的闪存空间、因为我在 CC2640上进行了 m传真)、并使以下现成项目从 simplelink_cc2640r2_sdk_1_00_00_22 SDK 中正常工作:

    - bim_oad_offchip
    - simple_peripheral_cc2640r2lp_stack
    - simple_peripheral_cc2640r2lp_app_oad_offchip

    我成功引导了电路板并使用 BTool 运行了多个 OAD

    之后、我导入了 CC2640项目的源代码并进行了移植指南中详述的更改(将事件调度代码从信标迁移到事件、更新的头文件包括等)。

    此后、我遇到了许多任务和 BLE API 问题。 当天的问题是上面详述的问题,在这里我看到许多 BLE API 调用失败,包括 GAP_DeviceInit()。

    GAP_DeviceInit()通过对 GAPRole_StartDevice()的调用在应用程序的 init 函数中调用。 GAPRole_StartDevice()在 VentoProfile_RegisterAppCBs()和 GAPBondMgr_Register()之后调用。