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.
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