Hi all,
I'm trying hard to get some decent code running in the CLA. It seems that I can only call one level of function hierarcy.
The following CLA-code works, I can tell from my blinking LED as the task gets called via a timer interrupt:
float32 calc2(float32 argb){
return argb+1.0;
}
float32 calc(float32 arga){
return calc2(arga)+1.0;
}
__interrupt void cla_Task8(void){
LEDstate = LEDstate^1;
out = calc2(in);
}
Now if I add one more level of function call nesting it does not work anymore:
float32 calc2(float32 argb){
return argb+1.0;
}
float32 calc(float32 arga){
return calc2(arga)+1.0;
}
__interrupt void cla_Task8(void){
LEDstate = LEDstate^1;
out = calc(in); // calc2(in);
}
This behavior contradicts what the C/C++ compiler manual www.ti.com/lit/ug/spru514j/spru514j.pdf says:
The CLA compiler supports multiple nested levels of function calls. The restriction to two levels of function
calls has been removed.
So what is going wrong? Using a F28379D and the TI 15.12.1 compiler. I use compiler option --cla_support=cla1.
Thanks, Tim