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.

[参考译文] CC1354R10:射频示例 — RF 命令被抢占时安全执行

Guru**** 2540720 points
Other Parts Discussed in Thread: CC1354R10

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1566780/cc1354r10-rf-examples---safe-execution-of-rf-commands-when-they-are-preempted

器件型号:CC1354R10


工具/软件:

您好:

我们正在使用具有 BLE 和专有 UHF 协议的 CC1354R10 开发一款新器件。 该工程基于最新的 SDK 8.31.00.11。

我们仔细检查了所有射频专有示例。 我的问题与函数 RF_runCmdSafe (...) 有关。 我们理解一条命令可以被抢占的理念  

由另一个具有更高优先级的命令执行。 仅适用于多客户端应用程序。
问题:
1.为什么验证是 while (terminationReason & RF_EventCmdAborted)&&(terminationReason & RF_EventCmdPreempted)?
2.为什么要检查 RF_EventCmdAborted 事件? 只有 RF_EventCmdPreempted 事件用于被抢占的命令。
3.为什么核查是和,或或? 这是否意味着这两个事件都将为被抢占的命令而生成?
4.为什么不检查 RF_EventCmdCancelled、 RF_EventCmdStopped 和 RF_EventError 事件?
5.为什么不使用  RF_runCmdSafe (...) 此函数用于启动 FS 的第一条命令(并非在所有示例工程中都是如此)?
关于最后一个问题、我们成功捕获了使用 RF_EventLastCmdDone 事件执行 FS 命令的情况、但命令状态为 Done_OK。 返回的状态为 ERROR_SYNTH_PROG — 合成器校准失败。 这是非常后方的情况(每 50 万条命令执行一次,但会发生这种情况)。 是否有可能发生?
在这种情况下、下一个问题 是:
它是更好的 RF_runCmdSafe (...) 命令来检查返回的命令状态 DONE_OK 或 PROP_DONE_OK?
非常感谢您提前提出建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Angel、

    您使用的是 DMM? 还是通过射频驱动器的多模式处理一切?

    1.和 2. 在 DMM 上下文中、命令可以被 DMM 调度程序抢占或中止、具体取决于具体情况。 您应该处理这两者。

    3.如果队列中可能有多个事件,我们建议使用此语法。

    4.您也可以检查这些事件。  

    5.当您发送 CMD_FS 时、对讲机不会立即运行它、而是等到已安排 Rx og TX。 因此、这对 CMD_FS 没有意义。

    6.是的、CMD_FS 可能会失败。 发生这种情况时、以下 Tx 或 Rx 命令将 失败。 您应该确保已处理此错误。  

    谢谢、

    Marie H

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

    尊敬的 Marie H:

    1.是的,我们在项目中使用了 DMM。

    2.推荐的语法为“while ( terminationReason & RF_EventCmdAborted )&&( terminationReason & RF_EventCmdPreempted )“。

    这意味着、仅当两个事件都存在时才会重复 RF 命令。 如果它被中止或抢占、则 RF 命令将不会重复。 这不是目的。

    如果语法为“while ((terminationReason & RF_EventCmdAborted)||(terminationReason & RF_EventCmdPreempted))“、则如果第一个事件或第二个事件或两个事件都存在、则将重复 RF 命令。

    最后一个问题。

    在我们的射频专有协议和射频命令中、我们 在关闭 rfHandle 之前使用函数 RF_Yield (rfHandle)。 这对并行工作的 BLE 堆栈是否有问题?

    谢谢、

    Angel