Hello,
I read the demo7 of labs code,i do not understand the three var:frameProcToken/frameStartIntToken/ChirpProcToken
When are the three interrupt events triggered respectively?
Thanks.
Bryant
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.
Hello,
I read the demo7 of labs code,i do not understand the three var:frameProcToken/frameStartIntToken/ChirpProcToken
When are the three interrupt events triggered respectively?
Thanks.
Bryant
Hi Bryant,
frameproc token is used to indicate if a frame is being processed. This is not tied to any event, it is set and unset by the program itself.
frameStartIntToken is set to 1 in MRR_DSS_frameStartIntCallback, which is tied to the interrupt SOC_XWR18XX_DSS_INTC_EVENT_FRAME_START, i.e. the frame start event received from the frontend when a frame starts.
ChirpProcToken is set to 1 in MRR_DSS_chirpIntCallback, which is tied to the interrupt SOC_XWR18XX_DSS_INTC_EVENT_CHIRP_AVAIL, i.e. the chirp available event.
Regards,
Aayush
Hi ,Regards
You says all right.Let us see a MRR demo code as follow:
if(gMrrDSSMCB.frameStratIntToken == 1)
{
gMrrDSSMCB.frameStratIntToken == 0;
dataPathObj = gMrrDSSMCB.dataPathObj [gMrrDSSMCB.subframeIndx];
gMrrDSSMCB.stats.frameStarEvt++;
MmwDemo_dssAssert(dataPathObj->chirpCount != 0);
}
Once frameStratIntToken is 1,as you said means a new frame is start, at the same time chirpCount should be 0.dataPathObj->chirpCount != 0 is false,So the code will Assert and quit.However the code is running commonly.So i think the frameStratIntToken is not coming at each frame start.
Please give me a answer,it confuse me long time.Thanks a lot!
Bryant,
Aayush
Hi Bryant,
I see your point. Let me analyze this with CCS debug and get back to you by tomorrow.
Regards,
Aayush
Hello ti's engineers,
What's the status of the problem?Why the delay in replying?
Regards,
Bryant
Hi Bryant,
I looked into this. It is somewhat confusing indeed. What I can confirm is that ChirpProcToken gets set first, a chirp is processed, chirpCount goes up to 1, then frameStartIntToken is serviced in the mmWave task. This causes chirpCount to be 1 by the time the assert statement is encountered. I think this is not desirable. What I will try next is timestamp the chirp and frame callbacks to see exactly when they occur. Afterwards, I will confer with my colleagues about this. Thanks for bringing this to my attention.
Hello,Aayush
Thanks for your reply.
As you say,the ChirpProcToken is prior to frameStartIntToken? I now wonder if the two events happened in different threads?
BR
Bryant
Hi Bryant,
The two tokens are set in their respective ISRs, which occur asynchronously from the task that checks the value of these tokens to take actions. My suspicion is that the ChirpProcToken for the first chirp in a frame is set before the frameStartIntToken. I will have to time the ISRs to confirm this suspicion.
Regards,
Aayush