工具与软件:
大家好!
在专有项目的框架内、我使用 NOP 命令。
技术参考手册(2018年1月- 2024年6月修订)指出"该命令可用于测试系统 CPU 与无线电 CPU 之间的通信或插入等待。"
我将此 NOP 命令放在 RF_cmdPropXXAdv 命令链的开头:
RF_cmdNop.startTrigger.triggerType = TRIG_ABSTIME;
RF_cmdNop.startTrigger.pastTrig = 1;
RF_cmdNop.startTime = USEC_2_RAT_TICKS(1000000);
RF_cmdNop.condition.rule = COND_ALWAYS;
RF_cmdNop.pNextOp = (rfc_radioOp_t *) &RF_cmdPropXXAdv;
RF_cmdPropXXAdv.startTrigger.triggerType = TRIG_REL_FIRSTSTART;
RF_cmdPropXXAdv.startTime = 600; // means 150 us since NOP cmd starts
RF_cmdPropXXAdv.startTrigger.pastTrig = 1;
RF_cmdPropXXAdv.condition.rule = COND_ALWAYS;
RF_cmdPropXXAdv.pNextOp = (rfc_radioOp_t *) &RF_cmdPropYYAdv;
等等...
...
每次链完全执行时、我都会调整此命令的"start"参数:
RF_cmdNopFG.startTime += 8000; // i.e. 2000 us
并通过发布 RF_cmdNop 重新启动链:
RF_postCmd(rfHandle, (RF_Op *) &RF_cmdNopFG, RF_PriorityNormal, RXEchoCallback, PROP_DONE_OK | PROP_DONE_RXTIMEOUT);
我注意到 NOP 命令需要325到4000个节拍才能执行。
因此有两个问题:
- NOP 命令的执行时间必须是恒定的还是接近某个特定值?
-如果 NOP 指令的执行时间增加,那么这种奇怪行为的原因可能是什么?
请协助