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.

[参考译文] CC1352R:HCI_EXT_ModemTestTxCmd 不能在 DMM Z-Stack + BLE 项目中工作

Guru**** 3001220 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1036782/cc1352r-hci_ext_modemtesttxcmd-doesn-t-work-in-dmm-z-stack-ble-project

器件型号:CC1352R
Thread 中讨论的其他器件:SysConfig

SDK 4.40.0.44

2个 Launchpad cc1352r1

第1个 LP -"DMM_zed_switch_remote_display_app"项目

第二个 LP - Smart RF Studio 已连接

我们希望在 CUI 菜单中实现测试、但当我们调用命令 HCI_EXT_ModemTestTxCmd (LL_EXT_TX_UNCHADD_CARRIER、0)时、不会发生任何情况。 我们在使用 Smart RF Studio 的另一个 LP 板上看不到任何信号。 我们在 SmartRF Studio 中选择了通道37 (2402MHz)。

我们还尝试 了 HCI_EXT_EnhancedModemTestTxCmd (LL_EXT_TX_UN调 制载体、LL_EXT_RF_Setup_1m_PHY、0)、结果相同。

所有这些函数返回成功结果(0)。

我们在"build_component.opts"中添加了参数-dHCCI_TL_full、否则它会卡在 ROM_init.c ROM_Spinlock()中。

我们在 TX -> RX 模式下使用 Smart RF Studio 测试了这两个 LaunchPad、两者均正常工作。 我们看到了信号。

我们如何开始测试? 我们是否不初始化某个内容、这就是为什么测试无法启动?

P.S. 在我们基于 SDK 3.10.00.53的旧 BLE 项目中、虽然在"build_component.opts"文件中有-DHCI_TL_none、但测试运行良好、没有任何问题。

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

    我找到了问题。

    我们向远程显示应用发送事件以禁用 BLE 广播、然后启动 HCI 测试。 但实际上、在我们调用 HCI 函数时、该事件还没有被暂停。 HCI 测试不起作用、因为广播仍然处于活动状态。 我在禁用广播和启动 HCI TX 测试之间增加了延迟、现在工作正常。

    我还有其他问题。

    什么是堆栈的 DMM "暂停"? 我应该调用什么函数来改变堆栈状态 DMMPOLICY_PAUSED 或 DMMPOLICY_NON_PAUSED?

    2.阻止模式是否表示已暂停?

    DMMSch_setBlockModeOn (DMMPolicy_StackRole_BlePeripheral);

    DMMSch_setBlockModeOff (DMMPolicy_StackRole_BlePeripheral);

    3.当我调用 DMMSch_setBlockModeOn (DMMPolicy_StackRole_BlePeripheral)时、我看不到该事件

    案例 RD_policy_pause_EVT:

    在 REMOVE_DISPLAY.c 中

    如何触发 RD_policy_pause_EVT?

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

    尊敬的 Alex:

    感谢您跟进问题的状态。

    暂停活动由 SysConfig 中的"策略"表设置。  无论策略设置如何、DMM 调度程序都不会暂停堆栈。 当策略进入暂停状态时、将调用应用程序回调、以通知堆栈应暂停其活动。 仅当应用程序回调已被执行并已在 DMM 中注册时、才应使用暂停策略。   为了使应用程序知道其 DMM 策略何时更改为暂停状态、用户必须向 DMM 策略管理器注册回调函数。  

    2.封锁模式并不意味着暂停。  已暂停是通过回调向应用程序发出的指示、让堆栈知道应暂停活动。   块模式允许用户对给定堆栈施加限制、无论命令的实际优先级是多少、都不允许任何对讲机访问。  为了阻止一个堆栈、  使用了 DMMPolicy_setBlockModeOn() API。 相应的 DMMPolicy_setBlockModeOff  () API 用于再次打开的块。 用户可以使用 DMMPolicy_getBlockModeStatus()  API 查询堆栈的阻塞状态。

    3. 使用 DMMPolicy_registerAppCbs() API 注册应用程序回调。

    更多信息、请参阅 TI DMM 用户指南和运行时 API。

    此致、
    Ryan