Hallo,
I found an issue about my F28035 project.
I'm using CLA to manage control of PFC.
In the generated map file there's a block called "Cla1Prog:retain" next to block "Cla1Prog" and it occupies quite a lot.
The map file is shown below:
Cla1Prog 0 003f0000 00000f0e RUN ADDR = 00009000
003f0000 00000790 Pfc_ClaAlgo_Z.obj (Cla1Prog)
003f0790 000005dc Pfc_ClaAlgo_Z.obj (Cla1Prog:retain)
003f0d6c 000000fc Z_CS_2803x_CLA_PWM.obj (Cla1Prog)
003f0e68 00000074 Z_CS_2803x_SWApp_PowerElec_CLA.obj (Cla1Prog)
003f0edc 00000028 Z_CS_2803x_CLA_Data.obj (Cla1Prog)
003f0f04 0000000a Z_CLAbasic.obj (Cla1Prog)
"Cla1Prog" is only 0x790 of size while "Cla1Prog:retain" occupies 0x5dc of size.
Somebody told me that "Cla1Prog:retain" is related to the 8 tasks of CLA programming. But I have used only 3 of them and in that 3 tasks there're only invokes of other 7 functions. Code is shown below:
__interrupt void iv_Cla1Task1 ( void )
{
Pfc_AppAlgo_IController1_iv();
}
__interrupt void iv_Cla1Task2 ( void )
{
Pfc_AppAlgo_IController2_iv();
}
__interrupt void iv_Cla1Task3 ( void )
{
}
__interrupt void iv_Cla1Task4 ( void )
{
Init_CLA_GlbVar();
PFC2IL_PWM_Init_CLA( (Uint16)SYS_MHZ, (Uint16)PWM_KHZ ); //Initialize the CLA Period Variable
Pfc_InitAppAlgo_Controller_v();
Pfc_InitAppAlgo_Offset_b();
Pfc_InitAppAlgo_Version_v();
}
__interrupt void iv_Cla1Task5 ( void )
{
}
__interrupt void iv_Cla1Task6 ( void )
{
}
__interrupt void iv_Cla1Task7 ( void )
{
}
__interrupt void iv_Cla1Task8 ( void )
{
}
Why I throw out this issue is because this "Cla1Prog:retain" occupied too much area. I want to minimize the size of CLA program area so that CLA can execute more functions in the future.