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.

TMS320F280039C: CLA Task only executing once

Part Number: TMS320F280039C

Tool/software:

Hello there,
I've Triggered CLA task from EOC of an ADCSOC which is working as expected, also I'm reading ADC results and calling another Function but certainly, its only running once at the start and then CLA task is not executing.

Following code is the CLA TASK1:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
/*TASK1 of CLA : triggered from ADC interrupt via sw trigger option*/
__attribute__((interrupt)) void Cla1Task1 ( void )
{
// __mdebugstop();
claCheck_u8++;
Read_InternalADC();//Working fine
Dummyfunc_clatest1();
ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1); // clearing interrupt because task is configured on ADC interrupt
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Following code is the definition of Called function in CLA:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
inline void Dummyfunc_clatest(void)
{
int a;
Dummyfunc_clatest1();
Dummyfunc_clatest2();
}
inline void Dummyfunc_clatest1(void)
{
int b = GPIO_readPin(22u);
}
inline void Dummyfunc_clatest2(void)
{
int b = GPIO_readPin(22u);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

To check whether the CLA core is running we've added a counter variable (claCheck_u8) which is not continuously incrementing. Also, if we remove the nested functions (Dummyfunc_clatest1(), Dummyfunc_clatest2()) from Dummyfunc_clatest() then it is working fine.

  • Hi Tejas,

    A few things:

    • Are the nested functions being called by your CLA task located in a separate header file?
    • Can you verify that you aren't having the same issue as the thread linked here? (Is your scratchpad ownership being transferred to the CLA)?
    • Can you also try adding __mdebugstop(); lines into the functions to debug?

    Best Regards,

    Delaney