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.

[参考译文] CC2652R:如何为 PTM 模式创建十六进制文件

Guru**** 2387080 points
Other Parts Discussed in Thread: CC2650, SYSCONFIG, CC2652R, CC2651R3, CC2651P3, CC2642R, CC2640
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode

器件型号:CC2652R
主题中讨论的其他部件:CC2650SysConfigCC2651R3CC2651P3CC2642RCC2640

大家好、团队、

我正在使用 CC2652R1 MCU。 (BLE SDK 版本4.40.00.44)

我想生成 PTM 模式十六进制文件以进行电路板测试。

这是如何完成的?

我知道、对于 cc2650、我们有 host_test 示例项目、该项目生成栈和 app.hex 文件。

但在 cc2652中、我看到我们需要使用 SysConfig 工具来启用 PTM 模式。 我想知道生成 stack.hex 和 app.hex 文件需要遵循的步骤

谢谢您的帮助。

Ddn

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

    尊敬的 Ddnr:

    如果只需要图像即可运行测试、则可以直接使用中存储的 host_test hexfile 图像 \examples\rtos\CC26X2R1_LAUNCHXL_ble5stack\hexfiles\host_test_app.hex

    如果您的目标是在现有项目上启用 PTM、则应像您提到 的那样使用 SysConfig (请参阅此处)。 然后、当您构建项目时、将生成十六进制文件并可在器件上刷写。

    通常、对于 CC2642/CC2652R、链接器会生成单个 hexfile (即不要期望堆栈和应用程序位于单独的文件中)。

    此致、

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

    谢谢 Clement。

    因此、您需要说 host_test_app.hex 已启用 PTM 模式(而不是 DTM)。我的理解是否正确?

    我注意到中还有一个适用于 host_test 的示例项目 \examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\host_test。 它的用途是什么?

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

    您好!

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3798698 #3798698"]您是说 host_test_app.hex 已启用 PTM 模式(而不是 DTM)。我的理解是否正确?

    严格地说、这是 DTM (因为 host_test 示例实际上是网络处理器)。 话虽如此、如果您的目标是向器件发送 HCI 命令、则在 host_test 或 simple_peripheral 启用 PTM 的情况下、您将具有完全相同的行为。

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3798698 #3798698">我注意到中还有一个示例项目也适用于 host_test \examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\host_test。 它的用途是什么?[/报价]

    这是为了允许用户根据需要修改项目。 我们有一些客户将此项目用作双芯片实施的开发基础。

    此致、

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

    严格地说、这是 DTM (因为 host_test 示例实际上是网络处理器)。 话虽如此、如果您的目标是向器件发送 HCI 命令、则在 host_test 或 simple_peripheral 启用 PTM 的情况下、您将具有完全相同的行为。

    =>那么 DTM 和 PTM 模式之间有什么区别呢?

    我在链接中阅读了用户指南、但无法获得实际差异。

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

    您好!

    从测试仪的角度来看、PTM 和 DTM 之间预计不会有差异。 区别在于开发人员的观点。 我们讨论网络处理器的 DTM、我们讨论非网络处理器的 PTM。

    相关主题中提供了大部分详细信息(CC2640:PTM CC2640 )。 引用我自己:

    有时会询问问题" PTM 和 DTM 之间有什么区别?"。 如上所述、测试命令本身定义为 DTM、并通过 HCI 网络处理器(例如 Host_Test)访问。 PTM 只是在非网络处理器配置中访问 DTM 命令的一种方法。 进入 PTM (例如、通过 Pogo 引脚驱动 GPIO)会通过 UART 接口将这些相同的 DTM 命令暴露于单器件(非网络处理器)固件配置中。

    我希望它更清晰。

    此致、

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

    是的、现在更清晰了。

    我们的实际 MCU 基于 CC2651R3 5x5封装。 当我尝试刷写该 host_test_app.hex 文件时、它对我无效。 (由于 UART 引脚可能会发生更改、因此它显然不起作用)。

    我是否可以知道 CC2651R3 5x5封装中使用了哪些引脚、它是否与 host_test_app.hex 中配置的相同。?

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

    您好!

    我是否可以问您尝试在 CC2651R3上刷写哪个映像? 为 CC2652R 编译的映像预计不会在 CC2652R 器件上工作。

    对于 CC2651R3、我们建议使用我们为 CC2651P3提供的项目。 然后、您需要将项目移植到 CC2651R3。 我们在 这里详细介绍了移植项目的步骤

    也就是说、SDK 5.20不提供 CC2651P3的 host_test 示例。 因此、我建议使用 simple_peripheral 示例并启用先前讨论的 PTM。

    此致、

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

    我尝试在路径\ti\simplelink_cc13x2_26x2_sdk_4_40_00_44\examples\rtos\CC26X2R1_LAUNCHXL_ble5stack\hexx5文件中刷写 CC26X2R1_LAUNCHXL 可用的 host_test_app.hex、因为我在示例中找不到任何与 CC2651R3类似的文件。

    (BLE SDK 版本4.40.00.44)是我现在使用的 SDK 版本。

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

    您好!

    感谢您的介绍。

    如前所述、这将不起作用。 请遵循我在上一封邮件中提出的建议。

    此致、

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

    您好 Clement、

    感谢您的澄清。

    但我看到 LP_CC2651P3、它是与采用5x5封装的 CC2651R3相同的封装吗? 我是否可以知道 CC2651P3和 CC2651R3中的 UART 引脚配置?

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

    您好!

    实际上、CC26xx/CC13xx 系列中的器件允许将几乎任何引脚用于任何外设。 SysConfig 可用于将所需的引脚与外设相关联。

    默认情况下、在 LP_CC2651P3上、XDS110 UART 连接到 DIO13 (TX)和 DIO12 (RX)。

    如果不清楚、则 CC2651P3和 CC2651R3器件不兼容二进制。

    此致、

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

    您好 Clement、

    我的同事从 TI 获得了一条信息、即 CC2652和 CC2651的 PTM 是相同的。

    我现在有点困惑、因为在这种情况下、为什么 cc2652的十六进制文件(host_test_app.hex)不能在 cc2651r3中工作?

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

    您好!

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3801748 #3801748"]我的同事从 TI 获得了一条信息、即 CC2652和 CC2651的 PTM 相同[/quot]

    没错。 您是否通过 E2E 主题获得了这些信息? 如果是、您能给我点一个问题吗?

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3801748 #3801748"]为什么 cc2652的十六进制文件(host_test_app.hex)在 cc2651r3中不起作用?

    即使 PTM 在 CC2652R 和 CC2651R3上的工作方式相同、这两个器件也存在显著差异(尤其是在内核和 ROM 级别)、从而无法在两个器件上运行相同的二进制文件。

    此致、

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

    不可以、TI FAE 通过邮件而不是通过论坛接收信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3801927 #3801927"]否,TI FAE 通过邮件而不是通过论坛收到的信息。

    感谢您的介绍。 我只是想确保我有了完整的图片、并且没有遗漏任何信息

    此致、

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

    您好 Clement、

    正如您提到的、我已经浏览过这个链接

    [引用 userid="370266" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3800337 #3800337]CC2651R3、我们建议使用我们为 CC2651P3提供的项目。 然后、您需要将项目移植到 CC2651R3。 我们在此详细介绍了移植项目的步骤 。[/quot]

    https://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/ble5stack/ble_user_guide/html/cc13x2_26x2/software-on-cc13x1x-26x1x.html#running-software-examples-on-the-litedevice

    但没有什么疑问:

    1、此处提到"CC13x1x 或 CC26x1x 与其各自的 CC13x2x1或 CC26x2x1引脚兼容"、这意味着引脚配置可用作"++"

    此外、由于 LP_CC2651P3.syscfg.json 可用、并且 P3与 R3功能兼容、因此我们为什么要重命名  CC26X2R1_LAUNCHXL.syscfg.json instead of directly renaming P3?

    3.我是否可以知道 CC2651P3和 CC2651R3之间的区别是什么

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

    您好!

    1-是

    2 -我想这两个选项都可以。 但是、我尚未测试您建议的选项。

    3 - P 表示"功率放大器"。 换句话说、P 器件可传输高达[编辑:CC2651P3限制为+10dBm]+20dBm (R 器件+5dBm)的功率。 有关 更多详细信息、请参阅此博客文章。

    此致、

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

    我在这里有一些疑问,它被称为:

    1.标记为绿色,我在路径中找到.json 文件。 复制后应将该文件粘贴到何处。

    (当我创建一个项目时、创建的项目文件夹不包含任何.json 文件)。 是否需要从 SDK 复制此文件并将其粘贴到任何项目路径中,或者直接更改 SDK 本身的名称?

    2.标记为红色、我应该在哪里编辑 SysConfig 文件、因为我在创建的工程中找不到该文件?

    我们使用 CC2651R3定制板进行测试、而不是 LP。 那么、这些步骤是否也适用于定制板?

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

    您好!

    感谢您对文档的反馈。 我将确保在我们的下一个版本中改进此功能。

    1-.json 文件应粘贴在同一位置。

    2-"SysConfig file"是以.syscfg 结尾的文件

    3-是。 可能需要进行其他更改(由于定制电路板的设计)。

    此致、

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

    您好 Clement、

    感谢您的回复。

    1.请阐明相同的位置->是相同的 SDK 位置还是新创建的项目路径中的位置。?

    2.我知道 SysConfig 文件。 但是、当我创建工程时、在工程路径中找不到.syscfg 文件。 只有 Settings.Release 文件夹和一些与 IAR 工作区相关的文件可用。 在这种情况下,我应该将.syscfg 和其他文件夹(如 Startup、Application)复制到项目路径中吗?

    谢谢。

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

    您好!

    1 -相同的位置意味着 \source\ti\boards\\.meta

    2:您是否在 IAR 中导入了 CC2651P3? 使用 IAR 打开项目时、您能否提供项目的屏幕截图?

    此致、

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

    谢谢。

    是的、这是尖叫。 但我复制了应用程序、启动文件夹、.syscfg 进行构建、否则会抛出文件丢失的错误。

    我还注意到、由于特定文件已重新编辑、pka.h 文件错误在\ti\simplelink_cc13x2_26x2_sdk_5_20_00_52\source\ti\devices\cc13x1_cc26x1\driverlib 的器件系列文件夹中缺失

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

    请尽快更新我的后续步骤。

    谢谢

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

    您好!

    项目导入出错。我建议按照 快速入门指南从头开始重新启动。 或者、您可能希望使用 CCS -根据我的说法、这种方法处理起来稍微容易一些。

    导入项目后、请确保项目构建正确、然后再继续。

    一般来说、从不同工程复制.syscfg 文件不起作用、因为它会导致工具链使用 CC2642R 的某些驱动程序文件(例如、ECDHCC26X2.h 与 CC26x1器件不兼容)。

    此致、

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

    您好 Clement、

    我可以成功导入工程并编译(我已导入工程->\ti\simplelink_cc13x2_26x2_sdk_5_20_00_52\examples\rtos\lp_CC2651p3\ble5stack\simple_peripheral)。 我按照上述步骤操作、启用 PTM 并构建代码。

    [引用 userid="370266" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3800337 #3800337"]

    对于 CC2651R3、我们建议使用我们为 CC2651P3提供的项目。 然后、您需要将项目移植到 CC2651R3。 我们在 这里详细介绍了移植项目的步骤

    也就是说、SDK 5.20不提供 CC2651P3的 host_test 示例。 因此、我建议使用 simple_peripheral 示例并启用先前讨论的 PTM。

    [/报价]

    我们目前使用的是基于 CC2651R3 MCU 的定制板、UART 引脚为 DIO2和 DIO3。 UART 引脚在导入的项目中也是相同的。 但十六进制文件构建仍然无法与我们的定制板配合使用。

    要使其正常工作、还应注意其他哪些更改(在前一条消息中指定)?

    提前感谢。

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

    您好!

    很高兴看到它正朝着正确的方向移动。

    您能否指定不工作意味着什么? 您是否设法在器件上刷写 hex 文件?

    如果是、我建议使用 CCS 调试器来尝试确定问题。 您可以在 我们的调试指南中找到更多详细信息

    随时向我们提供最新信息。

    此致、

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

    不工作意味着 UART 没有响应。

    是的、我刷写了十六进制文件。 好的。

    我理解了这个问题、我们使用基于 RKP 封装(5x5) 40引脚的定制板。 但在 SysConfig 工具中、我无法找到特定的软件包、并且默认设置为 RKZ 软件包。 在这种情况下、如何继续?

    或者、能否使用 RKP (5x5)封装更新 SDK? 或者是否有任何其他方法。

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

    您好 Clement、

    请在此处优先支持我们。

    谢谢。

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

    您好!

    您能否解释一下您认为问题是由您使用的特定封装引起的原因? 您是否看到正在执行任何特定的无限循环?

    除此之外、您是否看到器件广播? (您可以使用具有 LightBlue 等蓝牙 LE 应用的手机来验证这一点)。

    此致、

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

    您好 Clement、

    是的。 我们使用的封装是 RKP。 (带40引脚的5x5封装)。 我从负责硬件的同事那里获得了信息。 (默认情况 下、SysConfig 工具中选择了 RKZ 封装、因为我们没有从多个封装中进行选择的选项)。 请参阅屏幕截图。

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

    您好!

    我同意。 但是、只要您不使用非现有引脚、您就可以正常工作。

    您是否看到器件陷入某种类型的无限循环? 您是否看到器件广播?

    此致、

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

    您好 Clement、

    它也不是广告。 我尝试对其进行调试。 我得到了该错误->

     ERROR[Lp011]:段放置失败   

    无法在[0x2000'00d8-0x2000'7fff]>(总未提交空间0x7b28)中为总估计最小大小为 bb490字节(最大对齐0x80)的段/块分配空间。

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

    您好!

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3815923 #3815923"]

    我得到了该错误->

     ERROR[Lp011]:段放置失败   

    无法在[0x2000'00d8-0x2000'7fff]>(总未提交空间0x7b28)中为总估计最小大小为 bb490字节(最大对齐0x80)的段/块分配空间。

    [/报价]

    是否正确理解了您在构建时遇到此错误?

    此致、

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

    是的、我在调试模式下构建时收到此错误。 在"释放"模式下、我没有收到错误。

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

    您好!

    该错误消息意味着您的内存不足。 如果我正确理解您的设置(如下所示)、则不应发生这种情况。 启用单个 UART 的 SimplePeripheral 不应使用这么多存储器。

    硬件:采用  RKP 封装且具有 CC2651R3器件的定制板

    软件:simple_Peripheral_LP_CC2651P3_tirtos_ccs 完全未修改、但在引脚2和3上添加了 UART 除外。

    是这样吗?

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

    您好、Nathan、

    是的、硬件和软件配置正确。

    [引用 userid="370266" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3815807 #3815807">您是否看到器件陷入某种无限循环? 您是否看到器件广播?[/quot]

    我可以在未启用 PTM 时看到广播。 当我启用 PTM 模式时,控制被捕获在 NPIITASK_transportRXCallBack()无限循环中。

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

    很好。 我已经在 LaunchPad 上模仿了您的设置、我发现它也出错了。 不过、我不确定这是由设置还是实际错误导致的。 我将在早上与我的团队一起回顾、然后从那里继续。 感谢您的耐心等待。

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

    您好!

    如果您可以通过解决方案联系我,说明启用 PTM 后控制在循环中的原因,那将非常有用。 我无法继续。

    谢谢。

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

    您好 Clement、

    请参阅以下我的评论,我昨天在测试时观察到的内容。

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3816232 #3816232"]
    您是否看到器件陷入某种类型的无限循环? 您是否看到器件广播?

    我可以在未启用 PTM 时看到广播。 当我启用 PTM 模式时,控制被捕获在 NPIITASK_transportRXCallBack()无限循环中。

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

    您好!

    您的结果确实令人鼓舞。 最好看到您设法获取器件广播并进入 PTM 模式。 最重要的是、器件在其 UART 线路上确实看到了一些东西。

    您是否意味着您在以下函数的"for (;);"循环中被阻止?

    static void NPITask_transportRXCallBack(int size)
    {
        // Check for overflow of RxBuf:
        // If the buffer has overflowed there is no way to safely recover. All
        // received bytes can be packet fragments so if a packet fragment is lost
        // the frame parser behavior becomes undefined. The only way to prevent
        // RxBuf overflow is to enable NPI_FLOW_CTRL.
        //
        // If NPI_FLOW_CTRL is not enabled then there is no way to for slave to
        // control the master transfer rate. With NPI_FLOW_CTRL the slave has SRDY
        // to use as a software flow control mechanism.
        // When using NPI_FLOW_CTRL make sure to increase NPI_TL_BUF_SIZE
        // to suit the NPI frame length that is expected to be received.
        if ( size < NPIRxBuf_GetRxBufAvail() )
        {
            NPIRxBuf_Read(size);
    #ifdef ICALL_EVENTS
            Event_post(syncEvent, NPITASK_TRANSPORT_RX_EVENT);
    #else //!ICALL_EVENTS
            TRANSPORT_RX_ISR_EVENT_FLAG = NPITASK_TRANSPORT_RX_EVENT;
            Semaphore_post(appSem);
    #endif //ICALL_EVENTS
        }
        else
        {
            // Trap here for pending buffer overflow. If NPI_FLOW_CTRL is
            // enabled, increase size of RxBuf to handle larger frames from host.
            for(;;);
        }
    }

    如果是、您是否已查看评论?

    您是否使用流量控制? NPI_TL_BUF_SIZE 的值是多少?

    此致、

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

    您好 Clement、

    感谢您回来。 我尚未启用流控制。 仅启用 PTM。

    另外还有一个观察结果是、有时控制权会转到 Error_PolicySpin 并在那里被阻止。

    /*
     * ==== ERROR_PolicySpin ===
     *
    /* REQ_TAG (SYSBIS-854)*/
    /* LCOV_Excl_START */
    空 Error_PolicySpin (Error_Block *EB、Types_ModuleId mod、CString 文件、
       int 行、Error_ID、IArgarg1、IArgarg2)

    /* LCOV_Excl_STOP */
       for (;;){
       }

    我是否可以知道在什么情况下它会调用此错误函数?

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

    您好 Clement、

    添加到上述注释后、我保留了断点并观察到一次

    GAP_DeviceInit (GAP_PROFILE_PERipheral、self实体、addrMode、&pRandomAddress);

    调用时,控件不会退出此函数,当我暂停执行时,它将移至 Error_PolicySpin()函数。

    GAP 未正确初始化或挂起的原因可能是什么?

    谢谢。

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

    您好!

    一般来说、当程序被中断点停止时、时序会受到严重干扰、并且蓝牙 LE 堆栈可能会崩溃。

    话虽如此,我想集中谈谈导致 NPIITASK_transportRXCallBack()中无限循环的问题。

    请告诉我们 NPI_TL_BUF_SIZE 的值是什么、看看增大其值是否有帮助?

    谢谢、此致、

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

    您好!

    NPI_TL_BUF_SIZE 定义为:


    #if defined (CC26X2)|| Defined (CC13X2)|| Defined (CC13X2P)
     #ifndef NPI_TL_BUF_SIZE
       #define NPI_TL_BUF_SIZE        1680
     #endif
    #else // CC26XX_R2 || CC1350LP_7xD……  
     #ifndef NPI_TL_BUF_SIZE
       #define NPI_TL_BUF_SIZE        330
     #endif
    #endif // CC26X2 || CC13X2

    我在此处找不到 CC2651R3/P3的器件系列? 所以我觉得它是330、我把它增加到了1680、找不到任何区别。

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

    您好 Clement、

    我是否回答了您关于 NPI_TL_BUF_SIZE 的问题?

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

    您好!

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3818664 #3818664"]我是否回答了您关于 NPI_TL_BUF_SIZE 的问题?[/引用]

    我想我有我需要的信息、但我不明白为什么我们会遇到这个溢出。

    请问您是否要向器件发送 UART 命令?

    如果是,请具体说明

    • 发送了哪些命令?
    • 哪种工具用于发送命令? (BTool、串行终端等)
    • UART 配置如何? (波特率、停止位等)

    此致、

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

    目前我不会发送任何命令。 这就是为什么我甚至不理解它为什么进入其他情况环路的原因。  

    首先是控制 IF 条件、经过几次迭代后、我认为它进入了其他情况。

    [引用 userid="358670" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1027617/cc2652r-how-to-create-hex-files-for-ptm-mode/3816630 #3816630">好极了。 我已经在 LaunchPad 上模仿了您的设置、我发现它也出错了。 不过、我不确定这是由设置还是实际错误导致的。 我将在早上与我的团队一起回顾、然后从那里继续。 感谢您的耐心等待。[/引述]

    此外、我将在此处添加 SysConfig 屏幕截图、以检查我的 PTM 启用是否正确。

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

    您好!

    所提供的屏幕截图对我来说看起来很好。 我已要求弥敦评论他是否发现任何问题。

    要继续调试、我建议探测 UART 线以查看是否可以发现一些噪声。 如果不发生 UART 操作、则 TX 和 RX 线路都应处于高电平。

    之后、我建议使用 BTool 向器件发送 PTM 命令。 (BTool 在中的 SDK 中提供 \tools\ble5stack\btool)。 在这里、我再次建议发送命令(例如 HCI_Reset 命令)

    让我们及时了解最新信息、

    此致、

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

    您好 Clement、

    这是我观察到的->

    • 我有两个 HCI 软件与 BT 模块通信。 这两个程序都可与我的 cc2640 (上一模块)配合使用。 一个称为 BlueC 、另一个称为 HCI 测试仪2。 两个程序都通过 UART 进行通信。
    • 我将 COM 端口设置为 à 波特率:115200/奇偶校验:无/数据位:8 /停止位:1
    • 我设置了 HCI_Reset 命令。 问题是我无法建立 UART 通信。
    • 对于 CC2640、当我发送命令将射频通道设置为2450 MHz (01 1E 20 03 18 25 00)、然后发送 end_test 命令 01 1F 20 00。 我收到了这两条命令的响应。
    • 对于 CC2651R3、MCU 没有回声、射频信号也没有发生任何变化。

     谢谢。

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

    您好!

    感谢您提供这些详细信息。

    您是否尝试探测 UART 线? 我认为这是现在需要做的事情、以便了解 UART Rx 缓冲区溢出的原因。

    此致、