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.

TMS320F28P550SJ: calculation in CLA is wrong, and there are CLA-related warnings

Part Number: TMS320F28P550SJ
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

When compiling my TMS320F28P550SJ project, a bunch of warnings like below are generated:

double clicking the warning messages brings me to the following code in CLAmath.h:

========

    //Using the Taylor series
    return(SinK + X * (CosK                        \
                + X * (CLAsincosTable_Coef0 * SinK \
                + X * (CLAsincosTable_Coef1 * CosK \
                + X * (CLAsincosTable_Coef2 * SinK \
                + X * (CLAsincosTable_Coef3 * CosK))))));

========

Also, some calculations in *.cla are incorrect; for example, sin_Phi_a_I_DS3 = sinf(Phase_IO_AC), sin_Phi_a_I_DS3 is always 0 while Phase_IO_AC is correct; both sin_Phi_a_I_DS3 and Phase_IO_AC are in CPU-CLA shared memory. Does this have something to do with the warnings above?

Our critical project is stuck here. Please advise. Any quick help would be greatly appreciated!

  • The warning message copied from Console are below:

    **** Build of configuration CPU1_FLASH for project QS2 ****

    "C:\\ti\\ccs1250\\ccs\\utils\\bin\\gmake" -k -j 16 all -O
     
    Building target: "QS2.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -O3 --fp_mode=relaxed --define=_DEBUG --define=_FLASH --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"QS2.map" --heap_size=0x100 --stack_size=0x7F8 --warn_sections -i"C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries" -i"C:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_02_00_00_EA1" -i"C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/syscfg" -i"C:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="QS2_linkInfo.xml" --entry_point=code_start --rom_model -o "QS2.out" "./ECU_infc_top.obj" "./Isr.obj" "./LED_ctl.obj" "./QT2_AC.obj" "./QT2_AC_side.obj" "./adc.obj" "./calculate.obj" "./cla.obj" "./cmpss.obj" "./epwm.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./f28004x_usdelay.obj" "./gpio.obj" "./pga.obj" "./power_sum.obj" "./sci_dq.obj" "./timer.obj" "./device/device.obj" "./device/f28p55x_codestartbranch.obj" "../28p55x_generic_flash_lnk.cmd" "C:/ti/c2000/C2000Ware_5_02_00_00_EA1/driverlib/f28p55x/driverlib/ccs/Release/driverlib.lib" "../libraries/F28P55xCPU1_CLAROM_Symbols_fpu32.lib" "../libraries/cla1_math_library_datarom_fpu32_eabi.lib"  -lF28P55xCPU1_CLAROM_Symbols_fpu32.lib -lcla1_math_library_datarom_fpu32_eabi.lib -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 788: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_TABLE_SIZEDivTwoPi" overflowed; the 25-bit relocated address 0x1001e4e is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000030, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 794: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef3" overflowed; the 25-bit relocated address 0x1001e5c is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000044, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 797: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef2" overflowed; the 25-bit relocated address 0x1001e5a is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000048, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 797: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef1" overflowed; the 25-bit relocated address 0x1001e56 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x0000004c, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 797: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef0" overflowed; the 25-bit relocated address 0x1001e54 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000050, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 509: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef3_neg" overflowed; the 25-bit relocated address 0x1001e5e is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000308, section = "Cla1Prog:Cla1Task4")
    "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/libraries/CLAmath.h", line 509: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef1_pos" overflowed; the 25-bit relocated address 0x1001e58 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000318, section = "Cla1Prog:Cla1Task4")
    "../QT2_AC.cla", line 313: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef3_neg" overflowed; the 25-bit relocated address 0x1001e5e is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000558, section = "Cla1Prog:Cla1Task4")
    "../QT2_AC.cla", line 314: warning #17003-D: relocation from function "Cla1Task4" to symbol "CLAsincosTable_Coef1_pos" overflowed; the 25-bit relocated address 0x1001e58 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "./QT2_AC.obj", offset = 0x00000570, section = "Cla1Prog:Cla1Task4")
    warning #10015-D: output file "QS2.out" cannot be loaded and run on a target system
    Finished building target: "QS2.out"
     
    echo "========= Build of the CLB simulation has moved to the CLB Tool. Click the '?' icon by the _Generate CLB Simulation File_ enable for more details (located in the Global Parameters of the Tile Design SysConfig module) ============="
    "========= Build of the CLB simulation has moved to the CLB Tool. Click the '?' icon by the _Generate CLB Simulation File_ enable for more details (located in the Global Parameters of the Tile Design SysConfig module) ============="
    if 0 == 1  C:/ti/ccs1250/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_5_02_00_00_EA1/utilities/clb_tool/clb_syscfg/dot_file_libraries/clbDotUtility.js"  "C:/ti/c2000/C2000Ware_5_02_00_00_EA1/utilities/clb_tool/clb_syscfg/" "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/syscfg" "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/syscfg/clb.dot"
    if 0 == 1  mkdir "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/diagrams"
    if 0 == 1  C:/ti/ccs1250/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_5_02_00_00_EA1/driverlib/.meta/generate_diagrams.js" "C:/ti/c2000/C2000Ware_5_02_00_00_EA1" "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/diagrams" "C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2gitRepository/QS2/CPU1_FLASH/syscfg"
     

    **** Build Finished ****

  • Is there something special about F28P55X CLA ? I have been using 280049 CLA for a few years and everything goes smooth, for example, sin_Phi_a_I_DS3 = sinf(Phase_IO_AC) gives correct results in 280049. I handles them in the same way in both 280049 and F28P55X, but F28P55X shows sin_Phi_a_I_DS3 is always 0 while Phase_IO_AC is correct

    I also referred to .cmd of the example project C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f28p55x\examples\cla\cla_ex4_pwm_control,  and use the same CLARAM configuration as the example project, like below:

    =======

        //

        // Configure LSRAMs

        //

        MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS0, MEMCFG_LSRAMCONTROLLER_CPU_CLA1);

        MemCfg_setCLAMemType(MEMCFG_SECT_LS0, MEMCFG_CLA_MEM_PROGRAM);

        MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS1, MEMCFG_LSRAMCONTROLLER_CPU_CLA1);

        MemCfg_setCLAMemType(MEMCFG_SECT_LS1, MEMCFG_CLA_MEM_DATA);

        MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS2, MEMCFG_LSRAMCONTROLLER_CPU_CLA1);

    MemCfg_setCLAMemType(MEMCFG_SECT_LS2, MEMCFG_CLA_MEM_DATA);

     

     

     

     

     

    /* CLA specific sections */

     

    #if defined(__TI_EABI__)

        /* CLA specific sections */

        Cla1Prog        : LOAD = FLASH_BANK0,

                          RUN = RAMLS0,

                          LOAD_START(Cla1ProgLoadStart),

                          RUN_START(Cla1ProgRunStart),

                          LOAD_SIZE(Cla1ProgLoadSize),

                          ALIGN(4)

    #else

        /* CLA specific sections */

        Cla1Prog        : LOAD = FLASH_BANK0,

                          RUN = RAMLS0,

                          LOAD_START(_Cla1ProgLoadStart),

                          RUN_START(_Cla1ProgRunStart),

                          LOAD_SIZE(_Cla1ProgLoadSize),

                          ALIGN(4)

    #endif

     

       Cla1ToCpuMsgRAM  : > CLATOCPURAM

       CpuToCla1MsgRAM  : > CPUTOCLARAM

     

       .scratchpad      : > RAMLS1

       .bss_cla         : > RAMLS1

     

       Cla1DataRam      : > RAMLS2

       cla_shared       : > RAMLS1

       CLADataLS1       : > RAMLS1

     

    #if defined(__TI_EABI__)

       .const_cla      : LOAD = FLASH_BANK0,

                          RUN = RAMLS1,

                          RUN_START(Cla1ConstRunStart),

                          LOAD_START(Cla1ConstLoadStart),

                          LOAD_SIZE(Cla1ConstLoadSize),

                          ALIGN(4)

    #else

       .const_cla      : LOAD = FLASH_BANK0,

                          RUN = RAMLS1,

                          RUN_START(_Cla1ConstRunStart),

                          LOAD_START(_Cla1ConstLoadStart),

                          LOAD_SIZE(_Cla1ConstLoadSize),

                          ALIGN(4)

    #endif

     

    =======

  • This is an emergent issue as our project is stuck here. Any quick help would be greatly appreciated!

  • Hi Quentin,

    This looks like the same issue found in the thread here: (+) TMS320F28P650DK: CLA math not working - Tesla EP Sitara MCU Forum - Tesla - EP - TI E2E support forums. Basically, the source containing the CLA-relative addresses could be missing and the addresses being used could instead be meant for c28x core. Since the CLA data ROM addresses from the c28x point of view are greater than 16-bits, the CLA is showing those warnings because it can only use addresses up to 16-bits. This would mean the CLA math tables aren't being accessed correctly by the CLA as well, which would explain the broken math functions. I will contact the Boot ROM team and see if the CLA source for the F28P55x is indeed missing.

    Best Regards,

    Delaney

  • Thanks, Delaney. I have the following questions:

    1. Is this the reason sin_Phi_a_I_DS3 = sinf(Phase_IO_AC) is always 0 in CLA TASK?

    2. I can not open  (+) TMS320F28P650DK: CLA math not working - Tesla EP Sitara MCU Forum - Tesla - EP - TI E2E support forums . It says "page not found". How do I access this link?

  • Hi Quentin,

    1. Yes, this would cause the sinf() function to always return 0 since the CLA wouldn't be able to access the proper portion in memory containing the ROM sine lookup table from the CLA math library.

    2. My apologies, this link must not be shareable. The issue is also detailed a little bit in this thread if you want to take a look there instead.

    Best Regards,

    Delaney

  • Thanks, Delaney, but I still can not access " this thread"

    Before getting the ultimate solution, is there a workaround to make sinf()  work in CLA?

  • Hi Quentin,

    Sorry about that, I'm not sure what's going wrong with the links then. You could potentially load the needed sine tables into CLA accessible LSRAM memory yourself to do sine computations on the CLA for now. You would have to make sure there is enough space in the LSRAM for both these tables and your CLA program. The sine tables programmed into the CLA ROM are shown in [C2000ware install]\libraries\math\CLAmath\c28\source\CLASinCosTable.asm for your reference.

    The ultimate solution would be to have the boot ROM team regenerate the library with the correct symbols for the CLA. I will let you know when I get a response from them.

    Best Regards,

    Delaney

  • Thanks a lot, Delaney. We are eagerly waiting for the response and solution from your boot ROM team.

  • I have contacted them and will let you know as soon as I get a response. I'm sorry for the inconvenience.

    Best Regards,

    Delaney

  • Hi Delaney,

    Any update on this? Our project is stuck and our team is eagerly waiting for the solution.

    Thanks,

    Quentin

  • Hi Quentin,

    Still waiting on a response from the Boot ROM team, I will ping them again and let them know it is urgent. I'm sorry again for the inconvenience.

    Best Regards,

    Delaney

  • Hi Delaney,

    Thanks so much for your prompt response! Please let them know it is critical.

    Quentin

  • Hi Quentin,

    I thought this was an issue with the CLA source lib files, but the Boot ROM team has responded saying these should be corrected for F28P55x. Let's try to get to the bottom of this.

    1. Can you check what address the CLAsincosTable is showing up in the map file? This should be an address located in the CLA data ROM portion of memory. 
    2. Can you also look through the steps in the sections 4.3 Integrating the Library into your Project and 4.4 Using the Tables in the CLA Data ROM of the CLA Math Library User's Guide and verify that you have all of the proper setup needed to use the library? 

    Best Regards,

    Delaney

  • Hi Delaney,

    Regarding #1: What keywords should be used when searching map file? I tried "CLAsincosTable" and "CLA data ROM" but found nothing. But below are found in the map file:

    abs   01001d0a  CLAsincosTable                                        
    abs   01001e4e  CLAsincosTable_TABLE_SIZEDivTwoPi                     
    abs   01001e54  CLAsincosTable_Coef0                                  
    abs   01001e56  CLAsincosTable_Coef1                                  
    abs   01001e58  CLAsincosTable_Coef1_pos                              
    abs   01001e5a  CLAsincosTable_Coef2                                  
    abs   01001e5c  CLAsincosTable_Coef3                                  
    abs   01001e5e  CLAsincosTable_Coef3_neg 

    Regarding #2: I am not sure if I missing some steps about CLA usage. As I mentioned before, I have been using 280049 CLA for quite a few years and had nothing wrong. Now I am using F28P55x CLA the same way as 280049, but the calculation results are always 0.

    BTW, Julia Li, TI FAE, also reproduced the same issue: 280049 CLA calculations are correct, while F28P55x CLA calculation results are always 0.

    Thanks,

    Quentin

  • Hi Delaney,,

    I used to use CCS12.5 + C2000Ware_5_02_00_00_EA1 on my  F28P55x project, after a bunch of manual ZIP file extraction, because  F28P55x was not officially supported yet. At least the project compiles fine.

    Because of this incorrect CLA calculation issue, I now upgraded to CCS12.7 + C2000Ware_5_02_00_00 which have native support of  F28P55x without any manual ZIP file extraction like we had at FCS. Then compile exactly the same project, and it generates the error below:

    =======

    **** Build of configuration CPU1_FLASH for project QS2 ****

    "C:\\ti\\ccs1270\\ccs\\utils\\bin\\gmake" -k -j 16 all -O
     
    Building target: "QS2.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -O3 --fp_mode=relaxed --define=_DEBUG --define=_FLASH --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"QS2.map" --heap_size=0x1300 --stack_size=0x1F00 --warn_sections -i"C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_02_00_00" -i"C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2_CCS127gitRepository/QS2/CPU1_FLASH/syscfg" -i"C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="QS2_linkInfo.xml" --entry_point=code_start --rom_model -o "QS2.out" "./ECU_infc_top.obj" "./Isr.obj" "./LED_ctl.obj" "./QT2_AC.obj" "./QT2_AC_side.obj" "./adc.obj" "./calculate.obj" "./cla.obj" "./cmpss.obj" "./epwm.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./f28004x_usdelay.obj" "./gpio.obj" "./pga.obj" "./power_sum.obj" "./sci_dq.obj" "./timer.obj" "./device/device.obj" "./device/f28p55x_codestartbranch.obj" "../28p55x_generic_flash_lnk.cmd" "C:/ti/c2000/C2000Ware_5_02_00_00/driverlib/f28p55x/driverlib/ccs/Release/driverlib.lib" "../libraries/cla1_math_library_datarom_fpu32_eabi.lib"  -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
     
     undefined                         first referenced
      symbol                               in file     
     ---------                         ----------------
     CLAsincosTable                    ./QT2_AC.obj    
     CLAsincosTable_Coef0              ./QT2_AC.obj    
     CLAsincosTable_Coef1              ./QT2_AC.obj    
     CLAsincosTable_Coef1_pos          ./QT2_AC.obj    
     CLAsincosTable_Coef2              ./QT2_AC.obj    
     CLAsincosTable_Coef3              ./QT2_AC.obj    
     CLAsincosTable_Coef3_neg          ./QT2_AC.obj    
     CLAsincosTable_TABLE_SIZEDivTwoPi ./QT2_AC.obj    
     
    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "QS2.out" not built
     
    >> Compilation failure
    makefile:161: recipe for target 'QS2.out' failed
    gmake[1]: *** [QS2.out] Error 1
    makefile:157: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    =======

    Could you advise?

    Thanks,

    Quentin

  • Hi Delaney,

    the sections 4.3 Integrating the Library into your Project of the CLA Math Library User's Guide mentions below:

    3. Select the proper CLA type compiler support. Enable the –cla_support option in Processor
    Options as shown in Fig. 4.6

    should I select CLA1 or CLA2 for F28P55x? 

    1. When I used CCS12.5 + C2000Ware_5_02_00_00_EA1 on my  F28P55x project earlier, TMS320F28P550SJ9.ccxml  specifies cla1.xml
    2. When I upgraded to CCS12.7 + C2000Ware_5_02_00_00, latest TMS320F28P550SJ9.ccxml  specifies cla2.xml
  • I already added some project settings as instructed by CLA Math Library User's Guide as shown below:

    but it still generates the following error when compiling:

    =========


    **** Build of configuration CPU1_FLASH for project QS2 ****

    "C:\\ti\\ccs1270\\ccs\\utils\\bin\\gmake" -k -j 16 all -O
     
    Building target: "QS2.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -O3 --fp_mode=relaxed --define=_DEBUG --define=_FLASH --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"QS2.map" --heap_size=0x1300 --stack_size=0x1F00 --warn_sections -i"C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_02_00_00" -i"C:/Users/Xiaoquan/Documents/JX_CCS_git/JX_QS2_CCS127gitRepository/QS2/CPU1_FLASH/syscfg" -i"C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib" -i"C:/ti/ccs1270/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="QS2_linkInfo.xml" --entry_point=code_start --rom_model -o "QS2.out" "./ECU_infc_top.obj" "./Isr.obj" "./LED_ctl.obj" "./QT2_AC.obj" "./QT2_AC_side.obj" "./adc.obj" "./calculate.obj" "./cla.obj" "./cmpss.obj" "./epwm.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./f28004x_usdelay.obj" "./gpio.obj" "./pga.obj" "./power_sum.obj" "./sci_dq.obj" "./timer.obj" "./device/device.obj" "./device/f28p55x_codestartbranch.obj" "../28p55x_generic_flash_lnk.cmd" "C:/ti/c2000/C2000Ware_5_02_00_00/driverlib/f28p55x/driverlib/ccs/Release/driverlib.lib" "../libraries/cla1_math_library_datarom_fpu32_eabi.lib"  -l"C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library_fpu32.lib" -l"C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library_datarom_fpu32_eabi.lib" -l"C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library.lib" -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    warning #10373-D: library "C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library_fpu32.lib" contains TI-COFF object files which are incompatible with the ELF output file.  Ensure you are using the proper library.
    warning #10373-D: library "C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library.lib" contains TI-COFF object files which are incompatible with the ELF output file.  Ensure you are using the proper library.
    warning #10373-D: library "C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library_fpu32.lib" contains TI-COFF object files which are incompatible with the ELF output file.  Ensure you are using the proper library.
    warning #10373-D: library "C:/ti/c2000/C2000Ware_5_02_00_00/libraries/math/CLAmath/c28/lib/cla2_math_library.lib" contains TI-COFF object files which are incompatible with the ELF output file.  Ensure you are using the proper library.
     
     undefined                         first referenced
      symbol                               in file     
     ---------                         ----------------
     CLAsincosTable                    ./QT2_AC.obj    
     CLAsincosTable_Coef0              ./QT2_AC.obj    
     CLAsincosTable_Coef1              ./QT2_AC.obj    
     CLAsincosTable_Coef1_pos          ./QT2_AC.obj    
     CLAsincosTable_Coef2              ./QT2_AC.obj    
     CLAsincosTable_Coef3              ./QT2_AC.obj    
     CLAsincosTable_Coef3_neg          ./QT2_AC.obj    
     CLAsincosTable_TABLE_SIZEDivTwoPi ./QT2_AC.obj    
     
    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "QS2.out" not built
     
    >> Compilation failure
    makefile:164: recipe for target 'QS2.out' failed
    gmake[1]: *** [QS2.out] Error 1
    makefile:160: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    =========

  • there is no *Symbol*.lib in  C:\ti\c2000\C2000Ware_5_02_00_00\libraries\math\CLAmath\c28\lib

  • Hi Quentin,

    I'm currently looking into this and will get back to you.

    Best Regards,

    Delaney

  • Hi Delaney,

    Any update on this?

    Thanks,

    Quentin

  • Hi Quentin,

    I apologize for the delay; I currently am still working to replicate and understand this issue. I also have a meeting with the other CLA expert on Friday to discuss this should have an update then.

    To answer one of your earlier questions - CLA2 should be used for F28P55x since the CLA on this device is Type 2.

    Best Regards,

    Delaney

  • Thanks, I did select CLA2 but still got the compile error mentioned earlier. Now our project is stuck.

  • Hi Quentin,

    In the top entry of your file search path settings, have you tried just adding "cla2_math_library.lib" instead of the full path?

    there is no *Symbol*.lib in  C:\ti\c2000\C2000Ware_5_02_00_00\libraries\math\CLAmath\c28\lib

    The symbol lib files for the boot ROM tables are usually located in a different directory. They will be located in [C2000ware install]/libraries/boot_rom/f28p55x/rev0/rom_symbol_libs/claDataROM. Can you try adding "F28P55xCPU1_CLAROM_Symbols.lib" to the top entry as well?

    Best Regards,

    Delaney

  • Hi Delaney,

    Finally I made it compiled after upgrading to CCS 12.7 & C2000Ware_5_02, but calculations such as

    sin_Phi_a_I_DS3 = sinf(Phase_IO_AC) is still always 0 in CLA TASK.

    Please let your CLA team know that our project has been stuck here for 2 weeks and it not able to proceed.

    Thanks,

    Quentin

  • Hi Quentin,

    Please try the following:

    • In the File Search Path
      • Remove the cla2_math_library_fpu32.lib and cla2_math_library.lib includes. The cla2_math_library_datarom_fpu32_eabi.lib has everything you need.
      • Use the F28P55xCPU1_CLAROM_Symbols_fpu32.lib boot rom include instead (from the [C2000ware install]/libraries/boot_rom/f28p55x/rev0/rom_symbol_libs/claDataROM folder)
    • Check the output of the map file after making those changes and send the screenshot of which address the CLAsincosTable is located at now.

    Best Regards,

    Delaney

  • Thanks, Delaney, yesterday I already did what you just suggested -- please see below:

    The map file shows below:

    abs   01001d0a  CLAsincosTable                                        
    abs   01001e54  CLAsincosTable_Coef0                                  
    abs   01001e56  CLAsincosTable_Coef1                                  
    abs   01001e58  CLAsincosTable_Coef1_pos                              
    abs   01001e5a  CLAsincosTable_Coef2                                  
    abs   01001e5c  CLAsincosTable_Coef3                                  
    abs   01001e5e  CLAsincosTable_Coef3_neg                              
    abs   01001e4e  CLAsincosTable_TABLE_SIZEDivTwoPi

  • Hi Delaney,

    As I mentioned before, Julia Li, TI FAE, also reproduced the same issue: 280049 CLA calculations are correct, while F28P55x CLA calculation results are always 0.

    I believe Julia reproduced this issue by just adding a couple of sin() calculation in CLA in an existing CLA example project.

    Are you also able to reproduce this issue by just adding a couple of sin() calculation in CLA in an existing CLA example project? This can probably serve as a testcase to help your development team to quickly find the root cause.

    Thanks,

    Quentin

  • Hi Quentin,

    Ok, it looks like it is using the correct addresses for the tables. Can you also try checking in the memory browser at those locations to make sure that you see the table information filled out there? The data can be found in the CLAsincosTable.asm [C2000ware install]/libraries/math/CLAmath/c28/source/ folder. I am looking into replicating the issue on my end as well. 

    Best Regards,

    Delaney

  • Hi Delaney,

    How to bring up memory browser to check? Could you elaborate?

    Quentin

  • The memory browser does not show anything. Please see below:

  • Hi Delaney,

    Our project has been stuck here for more than 2 weeks, and can not afford to wait any longer.  I made a testcase which reproduces the issue. Attached is the testcase. You can see from the CCS Express tab that:  Phase_IO_AC keeps changing, but sin_Phi_a_I_DS3 = sinf(Phase_IO_AC) is always on in CLA TASK.

     

    This testcase can run on TI F28P55x DEMO board. Please send this testcase to your development team to find the root cause and solution ASAP.

     

    Thanks,

    Quentin

  • Hi Delaney,

    I can reproduce the issue on my side as well. You can use this project for testing and you can find that test_value is always 0. Can you test this project at your side? Customer's this case is very urgent now.

    BTW on my side I cannot find below in my F28P55x .map file, but in my F280049 .map file I can find this.

    abs   01001d0a  CLAsincosTable                                        
    abs   01001e54  CLAsincosTable_Coef0                                  
    abs   01001e56  CLAsincosTable_Coef1                                  
    abs   01001e58  CLAsincosTable_Coef1_pos                              
    abs   01001e5a  CLAsincosTable_Coef2                                  
    abs   01001e5c  CLAsincosTable_Coef3                                  
    abs   01001e5e  CLAsincosTable_Coef3_neg                              
    abs   01001e4e  CLAsincosTable_TABLE_SIZEDivTwoPi

    4812.cla_ex1_asin.zip

    Thanks,

    Julia

  • Hi Julia/Quentin, Can you confirm which version of C2KWare are you using for reproducing the issue.

  • Hi Pawan,

    We both use C2000Ware_5_02. Thanks!

    Julia

  • Hi Julia,

    Yes, I will try out the test case now.

    Quentin,

    I was referring to the View >> Memory Browser in CCS while in debug mode to check that the data is actually there at that address. I can check this though and will have a response ASAP.

    Best Regards,

    Delaney

  • Hi Delaney,

    Any update from your development? What is the solution? We have been stuck on this issue for 2 weeks.

    Thanks,

    Quentin

  • Hi Quentin, Can you check if the attached library works for your project.
    F28P55xCPU1_CLAROM_Symbols_fpu32.lib

    Thanks, Pawan

  • Hi Pawan,

    Thanks a lot for providing the new .lib. After putting it on the top of C2000Ware_5_02_00_00, CLA calculations seem to be better.

    However, we are having some other troubles with CCS12.7 + C2000Ware_5_02_00_00, and mostly use  CCS12.5 + C2000Ware_5_02_00_00_EA1 on my  F28P55x project currently. Could you please provide new .lib to put at  C:\ti\c2000\C2000Ware_5_02_00_00_EA1\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\CLAROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib ?

    Thanks,

    Quentin

  • Quentin, the library would be the same one.

    Best regards, Pawan

  • Hi Pawan,

    I thought the library is the same one. But if I put F28P55xCPU1_CLAROM_Symbols_fpu32.lib you provided on the top of C2000Ware_5_02_00_00, CLA calculation is right.

    But if I put the library on the top of C2000Ware_5_02_00_00_EA1, sin_Phi_a_I_DS3 is still 0, which is wrong.

    Please note the library is in different folder in these 2 versions  :

    C2000Ware_5_02_00_00_EA1:   C:\ti\c2000\C2000Ware_5_02_00_00_EA1\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\CLAROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib

    C2000Ware_5_02_00_00:   C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\claDataROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib

  • Hi Pawan,

    I thought the library is the same one. But if I put F28P55xCPU1_CLAROM_Symbols_fpu32.lib you provided on the top of C2000Ware_5_02_00_00, CLA calculation is right.

    But if I put the library on the top of C2000Ware_5_02_00_00_EA1, sin_Phi_a_I_DS3 is still 0, which is wrong.

    Please note the library is in different folder in these 2 versions  :

    1. C2000Ware_5_02_00_00_EA1:   C:\ti\c2000\C2000Ware_5_02_00_00_EA1\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\CLAROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib
    2. C2000Ware_5_02_00_00:   C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\claDataROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib
  • Hi Quentin,

    The library would still be the same one. Please check the project properties -> C2000 linker -> file search path if the correct folder has been mapped.

    Best regards, Pawan

  • Hi Pawan,

    I did do the following:

    1. put new  F28P55xCPU1_CLAROM_Symbols_fpu32.lib provided by you  at C:\ti\c2000\C2000Ware_5_02_00_00_EA1\libraries\boot_rom\f28p55x\rev0\rom_symbol_libs\CLAROM\F28P55xCPU1_CLAROM_Symbols_fpu32.lib
    2. change "file search path" to below:

    but sin_Phi_a_I_DS3 = sinf(Phase_IO_AC) in CLA TASK is always 0

  • Hi Quentin,

    Would it be possible to use C2000Ware_5_02_00_00 instead of C2000Ware_5_02_00_00_EA1.

    Since you mentioned it is working with the C2000Ware_5_02_00_00 version, then we would need to check what files/project settings are different between these 2 projects.

    Would it be possible to provide an example project.

    Are you using CLA2 in the project settings.

    Best regards, Pawan

  • Hi Pawan, yes, I am using CLA2 in the project setting.

  • Hi Pawan,

    How  to use C2000Ware_5_02_00_00 instead of C2000Ware_5_02_00_00_EA1?

    I already changed  to C2000Ware_5_02_00_00  in settings below:

    and tried to change to C2000Ware_5_02_00_00  as well in below, but it is not taken:

  • Please change at below locations

    Best regards, Pawan

  • Please see below: Do you mean "change it here"? I did not find a way to do it. How?

  • Hi Quentin,

    Can you try adding the path to the C2000Ware_5_02_00_00 install in the "Product discovery path" then click Refresh for the "Discovered Products"?

    Best Regards,

    Delaney