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 task in TMS320F28377D

Other Parts Discussed in Thread: TMS320F28377D

Dear Sir,

I am using TMS320F28377D for my inverter application. I am using CLA first time. I have noticed, In CLA you are divided process in task base system (Up to 8 Task).


Now my question is,

Can i use while(1); in CLA task? --> means can i use 1 CLA task  for background activity permanently? Any disadvantage?

(Once my main core initialize i will fire task 1 and till power off it is not over)

E.g.,

Cla1Task1()

{

while(1)

{

Background();

};

}

Regards,

Maulik Timbadiya

  • Hello Maulik,

    Amtech said:

    Can i use while(1); in CLA task? --> means can i use 1 CLA task  for background activity permanently?

    You cannot do this.  The CLA tasks are not preemptive.  A task must run to completion before another task will be serviced.  If you put while(1) in a task, that task will never complete and the CLA will just sit in the while loop forever, never servicing another task.

    Regards,

    David

  • I mean to say that,

    I don't want any another task to perform (one task only to be perform permanently). In CLA, I am using only one task to do some activity permanently in while().

    just for example,

    while(1)

    {

    if(GPIO72 == 1)

    {

    TURN_LED_ON;

    }

    else

    {

    TURN_LED_OFF;

    }

    };

    Regards,

    Maulik

  • Maulik,

    Amtech said:

    I don't want any another task to perform (one task only to be perform permanently). In CLA, I am using only one task to do some activity permanently in while().

    If you want just the one task, you could use while(1) to stay in that loop as you showed.  Off the top of my head, I don't see any particularly negative consequences to doing this.  You'd never be able to get the CLA out of that loop, but then you don't have any other tasks anyway.  The CLA will run in that task forever.  It will chew up some power I suppose since the CLA will be running nonstop.

    Regards,

    David

  • just for information TRM says this

    section 5.4.3 Debugging CLA Code

  • Keyur,

    This note is applicable for CPU debug read to RAM which is configured as CLA PROGRAM RAM . CPU application code does not have access to CLA PROGRAM RAM hence there should not be any access from CPU application code to these RAMs hence this should not be a concern.

    Regards,
    Vivek Singh
  • Thanks Keyurbhai,

    You mean to say that: If i put CLA in while and try to debug CPU then it will not work. Right?

    Thanks and Regards,
    Maulik Timbadiya
  • Dear Vivek,

    As first line says "A CLA fetch has higher priority than CPU debug reads.", Who will perform this task (CLA fetch and CPU read)?

    Regards,
    Maulik
  • Hi,

    Sorry, I may not have understood the question. CLA fetch is done by CLA and CPU debug read is reading the memory content from CCS memory watch window or expression window. Not sure if that is what you were asking?

    Vivek Singh

  • On other question -

    If i put CLA in while and try to debug CPU then it will not work. Right?

    It's not for any CPU debug but only if accessing same memory from where CLA while loop running via CPU debugger. Other CPU debug should not have any impact.

    Regards,

    Vivek Singh