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.
Tool/software:
Hi TI,
I need to clarify one doubt that I have. I have read this below documentation for the said function.
I observed one this while running my application.
App scenario:
The app is running two graphs simultaneously. both graphs are having same type of nodes:
capture->viss->ldc->scaler->mosaic->display
The targets for scaler nodes in both graphs are VPAC1_MSC1 and VPAC2_MSC1 i.e. both are using different targets, different VPACs even.
Now, I am sending a control command to scaler node in both graphs to change the ROI.
Now, the thing that I observed is that the time taken to execute this call is varying from 600-10000us. When the execution time is low like 600-1000us I can see that the ROI change is reflected on the display.
but when the time taken is around 4000us the ROI remains unchanged. Now note that I am sending control commands continuously and suppose the next command took lower time then it will reflect that ROI changes along with the previous command's ROI change. Both ROI changes will happen on the next command that took lower time. Otherwise if I keep getting higher execution time the display remains unchanged.
Why this is happening even when I am using different targets, different VPACs even. I can see in the documentation above that these commands are serialized on a FIFO. Is this FIFO common among all the targets whether it is VPAC1 or VPAC2.
After noticing this execution time I did one experiment and commented the second graph and only ran first graph. This time the tivxNodeSendCommand() took constant 400-600us and I could see ROI reflecting on the display on each command.
Thanks and regards,
Lalit
Hi,
The expert assigned to this in a workshop. Kindly expect a delay in the response.
Best Regards,
Sudheer
Hi,
If you are using VPAC1_MSC1 and VPAC2_MSC1, as you mentioned, these are running on 2 different cores and 2 different VPACs and should not even affect each other's execution.
Is the time measured from the node send command call to the control command callback of the node? if not, can you confirm if the control command callback of the node is executed in this case?
Regards,
Nikhil
Hi Nikhil,
I am measuring the command execution time as below:
and I have put a print in the scaler target kernel's control function's crop params case as below:
I am getting this print every time I send the command irrespective of time taken. But I only see the immediate ROI changing on display when the time taken is low.
Thanks and regards,
Lalit
Hi Lalit,
Is the nodesendcommand API part of any thread? Because there are chances that the there is a context switch on A72 after sending the command and before receiving the same.
Can you please check that.
Also, can you check the if there are any delays from nodesendcommand to the control callback?
Also may I know the rate at which this call is executed?
Regards,
Nikhil