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.

SEM_pendBinary cause IFR could not be flag

Other Parts Discussed in Thread: DM3730

Dear all,

I found in my pjt, it could not rcv INTR or running HWI ISR during my task is running after its SEM has been post.

Follow is my code,

VOID dl_process()

    UINT8 i = 1;
    volatile UINT32 uiTmp1;
    while(i)
    {
        //SEM_pendBinary(&SemObjRxSymbolReceived, SYS_FOREVER);       
        //LOG_printf(&trace, "--------Receive %d DL symbol at %d (us) ",  gusRxSeq, TSCL/800 );       

              guiTskFrameNum++;
               if (guiTskFrameNum%50==0)
               {
                   GPIO5_Write(13, 0);
               }
               else if (guiTskFrameNum%50==25)
               {
                   GPIO5_Write(13, 1);
               }
               
            LOG_printf(&trace, "############DL Frame Process Number is %d", guiDlFrameNum);
               for (uiTmp1=0;uiTmp1<500000;uiTmp1++)
               {
                      asm(" NOP ");
               }
            asm(" NOP ");
            LOG_printf(&trace, "--------DL Frame process finish  %d (us) ",  TSCL/800 );                   
    }   
}

 

VOID Timer5ISR()
{
        guiDlFrameNum = (guiDlFrameNum + 1) % 1000;
        if (guiDlFrameNum ==0)
        {
             GPIO5_Write(15, 0);
        }
        else if (guiDlFrameNum ==500)
        {
             GPIO5_Write(15, 1);
             //SEM_postBinary(&SemObjRxSymbolReceived);
        }
}

 

Timer5ISR() is a timer HWI, I set the timer to  run the ISR in 1KHz . dl_process() is a task which just toggle some GPIO to make a LED flash.

Both task and HWI work will run fine if I comment the SEM_pendBinary(), the HWI will premmpt the task even if it is running.

But when I use SEM_pendBinary, the LED did not flash which means some error happen. I pause the code, found the PC stop at utl_halt, the LOG indicated that the task run only once,

So I use breakpoint in my task(), and find that the IFR has not been flagged, but the GIE and IER is enabled.

I am new to DSP/BIOS , and I use DM3730 with BIOS V5 under CCS V4.2.

I do not know why this error happen, can anyone lend me with a hand.

Best regards!