Hi!
I'm trying to use a semaphore to exit my radio loop, but my radio loop is blocked on rfObject.state.semSync according to ROV.
Any tips on figuring out how/why this is stuck? RF_runCmd never exits.
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;
}
}
Looking closer, I have a cmdPropRx that waits forever and is typically killed with CMD_TRIGGER.
Tried killing the command with both RF_flushCmd (I don't have the last command handle, was hoping it would catch all).
The CMD_TRIGGER doesn't seem to be killing the RX either.
Semaphore_post(radioExitSem);
RF_flushCmd(rfHandle, 0, 1);
rfc_CMD_TRIGGER_t triggerCmd = {
.commandNo = CMD_TRIGGER,
.triggerNo = 1
};
RF_runImmediateCmd(rfHandle, (uint32_t*)&triggerCmd);
Open to suggestions here.