Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG
Tool/software:
Hi All,
CCS: 20.2.0.12_1.8.0, compiler v22.6.2.LTS
Issue: CLA task size makes another task stop running correctly
To re-create:
1. Import cla_ex1_asin project
2. Add an extra line #300 in cla_ex1_asin.c, in order to run task 2:
unsigned long x1,x2,x3;
unsigned int result[3];
interrupt void Cla1Task2 ( void )
{
unsigned long i;
i = 1;
x2 = i%32;
x3 = i+1;
if (x2==1)
result[0]=1;
else result[0]=2;
}
#define USELESS_WORK { x1= 1 + (1U << (i%32));}
interrupt void Cla1Task3 ( void )
{
unsigned int i;
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
//USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
}x3:2
interrupt void Cla1Task3 ( void )
{
unsigned int i;
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK USELESS_WORK
}Task 3 is not even run, it is simply taking up more space, and unless I have misunderstood how these should work, it somehow affects how task 2 is run.
Task 3 size is 1688 bytes, well below the task code size limit specified in the documentation for CLA2.
