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.

TMS320F28379D: CLAatan2 error

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Hi all, 

I kindly request your prompt assistance on the following topic.  

 

Let me give summary of the work I am doing right now. I am trying to calculate a position using CLAatan2 calculation based on incoming sine and cosine values received as ADC inputs, and then sending the resulting output to a DAC pin. I am conducting this work with a magnetic encoder. Now the problem is when try to buid the program its shows CLAatan2 is undefined. Even I include all necessary .h and .lib files. 

 

 

Error: 

 

Description Resource    Path  Location    Type 

#10010 errors encountered during linking; "cla_lp_f2837xd.out" not built      cla_lp_f2837xd                C/C++ Problem 

#10234-D unresolved symbols remain  cla_lp_f2837xd                C/C++ Problem 

gmake: *** [all] Error 2      cla_lp_f2837xd                C/C++ Problem 

gmake[1]: *** [cla_lp_f2837xd.out] Error 1      cla_lp_f2837xd                C/C++ Problem 

unresolved symbol CLAatan2HalfPITable, first referenced in C:\ti\c2000\C2000Ware_4_03_00_00\libraries\math\CLAmath\c28\lib\cla1_math_library_datarom_fpu32_eabi.lib<CLAatan2.obj>   cla_lp_f2837xd                C/C++ Problem 

unresolved symbol CLAatan2Table, first referenced in C:\ti\c2000\C2000Ware_4_03_00_00\libraries\math\CLAmath\c28\lib\cla1_math_library_datarom_fpu32_eabi.lib<CLAatan2.obj>   cla_lp_f2837xd                C/C++ Problem 

  • Kirtesh,

    First off, could you please let me know if the problem persists if you use C2000Ware v5.01.00  - or 5.02.00 which we just released to ti.com.

    Thanks,

    Sira

  • thanks for prompt attention on my query ,  i am using C2000Ware v4.03.00 

  • Kirtesh, can you please switch to v5.01.00 or v5.02.00 and check? Or do you absolutely need to stick to 4.03.00?

  • sira, just make you confirm me moving ahead with C2000Ware v4.03.00 only. thanks

  • Kirtesh,

    I checked the cla_atan2 example in C2000Ware which has various build configurations - covering various devices (including F2837x) and various options (Flash, RAM, using/not using CLADataROM tables). All the build configurations for the F2837x device build OK.

    I looked at the project properties for this example. As you can see, the project is including a libc.a as an input library to the project. This is an index library, which based on the selected options e.g. cla type, fpu, coff/eabi, etc. will select the appropriate library to use.

    In this example, for the RAM or FLASH build configurations, it uses the CLADataROM, but the output type is COFF and ends up linking cla1_math_library_datarom_fpu32.lib

    However, if you look at the user guide in the /docs of CLAMath, you will see it mentions linking the ROM symbols library as well (which basically maps the desired table symbols to their physical address in ROM). 

    In the example, however, this is not done (here), but the project still builds - which means it is somehow access the ROM symbols library. I need to figure out how.

    For your issue, can you check the following:

    1. Is this path present in the Includes section of the project C:\ti\c2000\C2000Ware_4_03_00_00\libraries\math\CLAmath\c28\include?

    2. Can you try explicitly adding the CLADataROM symbols library as an input library to the project?

    2837x_c1bootROM_CLADataROMSymbols_eabi_fpu32.lib, present at C:\ti\c2000\C2000Ware_4_03_00_00\libraries\boot_rom\f2837xd\revB\rom_symbol_libs\c1_CLA_Data_ROM

    Thanks,

    Sira

  • thanks for your quick response let me check it and revert back to you.

  • added all lib/path but error still remain.


    **** Build of configuration CPU1_RAM for project lab_cla_lp_f2837xd ****

    "C:\\ti\\ccs1250\\ccs\\utils\\bin\\gmake" -k -j 12 all -O

    Building target: "lab_cla_lp_f2837xd.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 -Ooff --define=_DUAL_HEADERS --define=CPU1 --define=DEBUG --define=_LAUNCHXL_F28379D --define=_DUAL_CORE_ --define=F2837XD_DEVICE --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi --cla_background_task=off --cla_signed_compare_workaround=on -z -m"lab_cla_lp_f2837xd.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/c2000/C2000Ware_4_03_00_00/libraries/boot_rom/f2837xd/revB/rom_symbol_libs/c1_CLA_Data_ROM" -i"C:/ti/c2000/C2000Ware_4_03_00_00/libraries/math/CLAmath/c28/lib" -i"C:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/ti/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --define=RAM --define=CLA_C --diag_wrap=off --display_error_number --xml_link_info="lab_cla_lp_f2837xd_linkInfo.xml" --entry_point=code_start --rom_model -o "lab_cla_lp_f2837xd.out" "./lab_cla_tasks.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./lab_main.obj" "./device/F2837xD_CodeStartBranch.obj" "./device/device.obj" "../2837xD_RAM_CLA_lnk_cpu1.cmd" "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib" -l"C:/ti/c2000/C2000Ware_4_03_00_00/libraries/boot_rom/f2837xd/revB/rom_symbol_libs/c1_CLA_Data_ROM/F2837xRevB_c1bootROM_CLADataROMSymbols_eabi_fpu32.lib" -llibc.a
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    Cla1Regs ./lab_main.obj
    fail ./lab_main.obj
    pass ./lab_main.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "lab_cla_lp_f2837xd.out" not built

    >> Compilation failure
    makefile:144: recipe for target 'lab_cla_lp_f2837xd.out' failed
    gmake[1]: *** [lab_cla_lp_f2837xd.out] Error 1
    makefile:140: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

  • The error is now different - the previous error is gone. Please look into why Cla1Regs is not recognized.

    Side note, you are using --cla_support=cla2. This device has cla1, so change that.