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.

Compiler/TMS320F28379D: Triggering CLA tasks

Part Number: TMS320F28379D

Tool/software: TI C/C++ Compiler

Hi,

I am new to CLA and i wanna do some mutliplication and updation operation using CLA , which works in parallel and hence can save some time .

But the problem i am facing is the triggering source for the CLA . 

In the TRM it is given that the CLA  tasks can triggered by two mechanisms

Task trigger mechanisms:
– C28x CPU via the IACK instruction
– Task1 to Task8: up to 256 possible trigger sources from peripherals connected to the shared bus
on which the CLA assumes secondary ownership.

But they havent given the values for IACK to trigger the individual tasks , only two examples are given as below:

For example IACK #0x0001 will set bit 0 in the MIFR register to start task 1. Likewise IACK #0x0003 will set bits 0 and 1 in the MIFR register to start task 1 and task 2.

So my doubts is i want to trigger one task at a time separately independent of other tasks.

For example :

I wanna use CLA inside my  TIMERISR loop in that  i want the cla task1 to do multiplication after a particular operation and after some lines of code i wanna do updation  using TASK2 and repeat   the same using these tasks in between inside my isr loop. 

Thanks and Regards,

Ashwin

  • Edit: fixed typo - I meant MIFRC not MIER

    ASHWIN KUMAR M P said:

    But they havent given the values for IACK to trigger the individual tasks , only two examples are given as below:

    For example IACK #0x0001 will set bit 0 in the MIFR register to start task 1.

    The example mentioned above describes how to trigger one task.  Setting bit 0 with IACK will trigger task 1. 

    ASHWIN KUMAR M P said:

    So my doubts is i want to trigger one task at a time separately independent of other tasks.

    For example :

    I wanna use CLA inside my  TIMERISR loop in that  i want the cla task1 to do multiplication after a particular operation and after some lines of code i wanna do updation  using TASK2 and repeat   the same using these tasks in between inside my isr loop. 

    You would trigger task 1 as shown above and then sometime later trigger task 2 by writing to the appropriate bit in MIFRC using IACK. Keep in mind that if task 1 is still processing when you trigger task2, then task 2 will be held off until task 1 completes.

    Also refer to the documentation for the MIFRC register which is also in the device TRM in the CLA Registers section.

    Regards,

    Lori

    Click here for more CLA FAQs and resources.

  • Ashwin,

    In the TRM there is also a section on the Software Trigger mechanism titled "CLA Tasks and Interrupt Vectors". Search for IACK and you find it.

    Regards
    Lori