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.

[参考译文] CC1312R:RF_flushCmd 的线程安全

Guru**** 2468460 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1457020/cc1312r-thread-safety-of-rf_flushcmd

器件型号:CC1312R

工具与软件:

你好。

我的无线电任务执行以下行:
RxCommandHandle = RF_postCmd (rfHandle、(RF_Op*)&RF_cmdPropRx、RF_PriorityNormal、Data_Received、(RF_EventRxEntryDone | RF_EventLastCmdDone));

其中、" Data_Received "是我的回调函数。  

在执行代码期间的任意时刻、均可调用此行:
uint8_t rfStatus = rf_flushCmd (rfHandle、rf_CMDHANDLE_FLUSH_ALL、1);

刷新命令队列。  

我担心在处理接收到的消息时会调用 rf_flushCmd。  

这样做是否安全?  

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

    当模式设置为1时、您已选择"缓慢停止"。 这意味着您发送的是 CMD_STOP、而不是 CMD_ABORT。

    有关这些命令工作原理的详细信息、请参阅 TRM。

    Siri

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

    谢谢 Siri。  

    对于其他有好奇心的人:  

    23.3.3.2.2 CMD_STOP:停止命令
    命令 ID 编号:0x0402
    CMD_STOP 是直接命令。 接收时、无线电 CPU 通知当前运行的无线电操作命令已请求停止。 CMD_STOP 命令比 CMD_ABORT 命令更平稳、但可能需要更长时间才能完成。 通常情况下、对正在接收或传输的数据包进行处理后即可完成。 每条无线电操作命令都描述了接收 CMD_STOP 时的确切行为。 某些命令始终在已知时间内结束、并且不会响应 CMD_STOP。 如果未运行无线电操作命令、则不执行任何操作。 在所有情况下、CMDSTA 寄存器中发出的结果都会执行。 如果正在运行无线电操作命令、则可以在无线电操作结束之前更新 CMDSTA。