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.

[参考译文] CC1352P:rfObject.state.semSync 正在阻止无线电线程

Guru**** 2482225 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1227809/cc1352p-rfobject-state-semsync-blocking-radio-thread

器件型号:CC1352P

您好!  

我正在尝试使用信标退出无线电循环、但根据 ROV、我的无线电循环在 rfObject.state.semSync 上被阻止。  
关于确定如何/为什么这是卡住的任何提示? RF_runCmd 永远不会退出。

    while(true) { // each loop iteration is 1 chain starting with RF_cmdFs

        RF_runCmd(rfHandle, (RF_Op*)rf_ctx.RF_cmdFs, RF_PriorityNormal,
                  &listenerCallback, (RF_EventRxEntryDone | RF_EventLastCmdDone));

        if (Semaphore_pend(radioExitSem, BIOS_NO_WAIT)) {
            break;
        }
    }

仔细看一下、我有一个会一直等待的 cmdPropRx、通常使用 CMD_TRIGGER 会停止。  
尝试用两个 RF_flushCmd 来杀死该命令(我没有最后一个命令句柄、希望它能捕获全部)。
CMD_TRIGGER 似乎也不会杀死 RX。  

                Semaphore_post(radioExitSem);
                RF_flushCmd(rfHandle, 0, 1);
                rfc_CMD_TRIGGER_t triggerCmd = {
                    .commandNo = CMD_TRIGGER,
                    .triggerNo = 1
                };
                RF_runImmediateCmd(rfHandle, (uint32_t*)&triggerCmd);

在此处接受建议。  

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

    我有一个比赛条件。 我希望我可以删除这个帖子:)