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.

CLA MDEBUGSTOP command doesn't work on tasks started by setting MIFRC bit in the CPU code



I am attempting to debug several tasks in the CLA using CCS3.3 evaluation version.

I was able to successfully generate a breakpoint in CLA_TASK1 using the MDEBUGSTOP statement.  This task is triggered by ADCINT1. 

When trying to generate a breakpoint in CLA_TASK8 which is triggered by the statement

Cla1Regs.MIFRC.bit.INT8 = 1;

in the CPU code, (with the appropriate EALLOW/DIS wrapper) the MDEBUGSTOP instruction was not executed and the task ran to completion without stopping at the breakpoint.  I was able to force the task to execute by writing 0x0080 to MIFRC in the Cla debug window and that caused the CLA to stop at the MDEBUGSTOP instruction. The CLA debug window is connected to the processor, so the breakpoints should be enabled. 

Is this a device issue, or a CCS issue?  Has anyone else had a problem with this? Has it been fixed in CCS4?

It looks like the work-around is to comment out the line of code in the CPU that forces the task and just force it by changing the MIFRC register in the register window.

  • Two things to check,

     

    1.did you enable the SFRC

       //Allow the IACK instruction to flag a CLA interrupt/start a task
       // Necessary for software force of CLA Task
       Cla1Regs.MCTL.bit.IACKE = 1;

    2. If you have continuous ADC interrupt triggering CLA tasks, then CLA Task1 would always be pending, in this case if you are running the C28x and the CPU it's fine but if you are debugging the CLA code, because of priority CLATask1 would always keep on getting triggered.

    I have used MDEBUGSTOP in all the tasks and it works,

    Regards

    -Manish Bhardwaj