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.

AWR2944EVM: HWA

Part Number: AWR2944EVM

Hi, I find a quite weird issue about the hwa done interrupt registering.

In my project, the hwa function HWA_enableDoneInterrupt() leads to call the ISR callback directly which is registering by HWA_enableDoneInterrupt() ,  unexpectly.

my testing steps and results shown as following:

1. I add a counter named as AOAProcHWADoneIsrCallbackRunningCnt to count how many the times this ISR callback has been run. 

ISR Running counter

2. Set breakpoints before and after function HWA_enableDoneInterrupt().

   Run the test program, untill hit the breakpoint before HWA_enableDoneInterrupt().

   Figure shown as below. We can find that the AOAProcHWADoneIsrCallbackRunningCnt = 0, which is correct as expected.

breakpoint before func

3. Step over the HWA_enableDoneInterrupt(), hit the 2nd breadpoint after HWA_enableDoneInterrupt().

   Figure shown as below. find that the AOAProcHWADoneIsrCallbackRunningCnt = 1, which is Incorrect as unexpected.

breakpoint after the func

4. Step over a HWA_disableDoneInterrupt(), then still can step over the 1st SemaphoreP_pend(), which means that the semaphore is posted by the ISR indeed.

  While the 2nd SemaphoreP_pend() can not step over, which is corrent as expected.

This issue may result in the wrong controlling on hwa running.

Can you help me confirm it and fix or avoid it ?

Thank you very much!

  • Hi,

    Please give us some time to review your question

    We will get back to you by end of the week

     

    thank you

    Cesar

  • Hi, Cesar:

    Thank you for your response.

    I do more test on another module, such as dopplerprochwa.c, when I call the same HWA_enableDoneInterrupt() in the same way, everything is OK.  This issue only happens in my aoaprochwa.c.

    I'm so confused about the reason for it.

  • Hi, Cesar:

    We have solved this problem. it's related with the hwa paramset done interrupt mechanism. done interrupt will always be thrown to dss by hwa when finishs, no matter be enabled or not. so when we call the hwa_enableDoneinterrupt(), the callback registed is triggered by prevoius done interrupt that already happened somewhere. it's can be avoided by clearing hwa int status before calling the  enab done interrupt func.