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.

Compiler/TMS320F28377D: C2000 Code Generation Tools v18.1.1.LTS CLA math library problem

Part Number: TMS320F28377D

Tool/software: TI C/C++ Compiler

Hi,

we used compiler v16.9.6.LTS until now. But today I tried to use the new compiler v18.1.1..LTS with same project and I get following linker error:

undefined first referenced
symbol in file
--------- ----------------
__cla_CLAsincos_sp .\debug\Project_100.0TL3\CPU2/objs/cla_tasks.obj

What is the problem with CLAsincos function and new compiler?

  • Please look at the linker map file from the build that works.  Search for the symbol __cla_CLAsincos_sp.  Note the address for it.  Then look earlier in the map file for that address.  You will eventually find the object file associated with that address.  Note you are unlikely to find that exact address, though you might.  It is more likely you will find it falls between two addresses.  Once you find it, I suspect you will see that it the symbol __cla_CLAsincos_sp comes from a library you forgot to include in the new build.

    Thanks and regards,

    -George

  • Hi George,

    thank you for your answer. Both map files (old and new) contains CLAsincos.obj and includes cla1_math_library_datarom_fpu32.lib. But the old file doesn't have some __cla_CLAsincos_sp symbols. The new one have "UNDEFED __cla_CLAsincos_sp". Please see attached map files.

    MapFiles.zip

  • I presumed the symbol __cla_CLAsincos_sp appears in the old build.  But it doesn't. 

    So that I can figure out where that symbol comes from ..  Please use compiler version 18.1.1.LTS to submit a test case based on the source file cla_tasks.c as described in the article How to Submit a Compiler Test Case.

    Thanks and regards,

    -George

  • Hi,

    here ist the preprocessed file. We use following compiler and linker options:

    Compiler:

    --c99 \
    --keep_asm \
    --quiet \
    --asm_listing \
    --c_src_interlist \
    --optimizer_interlist \
    --include_path"$(DIR_CC)/include" \
    $(COMPILER_SEARCH_PATH) \
    --asm_directory"$(LST_PATH)" \
    --obj_directory"$(OBJ_PATH)" \
    --list_directory"$(LST_PATH)" \
    --large_memory_model \
    --silicon_version=28 \
    --float_support=fpu32 \
    --tmu_support=tmu0 \
    --fp_mode=relaxed \
    --cla_support=cla1 \
    --unified_memory \
    --symdebug:dwarf \
    --opt_level=2 \
    --opt_for_speed \
    --define=WORK_WITH_LOADER=$(WORK_WITH_LOADER) \
    --define=ALWAYS_THIRDHARMONIC \
    --define=MCU_VERSION=28377 \
    --define=SW_VERSION=$(SW_VERSION) \
    --define=SW_VERSION_STR=$(SW_VERSION_STR) \
    --define=CPU2 \
    --preproc_with_comment \
    --preproc_with_compile \
    --rpt_threshold=20

    Linker:

    --run_linker \
    -stack0x3F8 \
    --quiet \
    --rom_model \
    --warn_sections \
    --reread_libs \
    --map_file"abc.map" \
    --output_file"abc.out" \
    --search_path"./source/include" \
    --search_path"./source/Mcu/TI/DSP2837xD" \
    --library"./source/lib/rts2800_fpu32_fast_supplement.lib" \
    --xml_link_info="abc.xml" \
    --library"$(DIR_CC)/lib/rts2800_fpu32.lib" \
    --library"./source/_Devices/100.0TL3/Cla/cla1_math_library_datarom_fpu32.lib" \
    --library"./source/_Devices/100.0TL3/Cla/F2837xRevB_c2bootROM_CLADataROMSymbols_fpu32.lib"
    --diag_suppress=16002

    cla_tasks.pp.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    /*******************************************************************************
    * KACO new energy GmbH
    * (c) Gottfried-Leibniz-Str. 1, D-74172 Neckarsulm, Germany
    ********************************************************************************
    * Project Powador xxTL1 controller
    ****************************************************************************//**
    * \brief CLA task file
    *
    * This file contains the tasks for the CLA coprocessor.
    ********************************************************************************
    * \file cla_tasks.c
    ********************************************************************************
    * \todo
    *******************************************************************************/
    /***********
    * Pragmas *
    ***********/
    /***********
    * Includes *
    ***********/
    // Include shared variables (with types supported by CLA)
    //###########################################################################
    //
    // FILE: F2837xD_Cla_defines.h
    //
    // TITLE: #defines used in CLA examples
    //
    //###########################################################################
    // $TI Release: F2837xD Support Library v170 $
    // $Release Date: Mon Sep 21 16:52:10 CDT 2015 $
    // $Copyright: Copyright (C) 2013-2015 Texas Instruments Incorporated -
    // http://www.ti.com/ ALL RIGHTS RESERVED $
    //###########################################################################
    // MCTL Register
    //==========================
    // MMEMCFG Register
    //==========================
    // MIER Interrupt Enable Register
    //==========================
    // Peripheral Interrupt Source Select define for DMAnCLASourceSelect Register
    //===========================================================================
    //---------------------------------------------------------------------------
    // Useful CLA Operation Macros:
    //================================
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Best regards

    Gennadi

  • Thank you for the test case.  When I build it, I see the compiler generate the symbol name __cla_CLAsincos_sp.  I don't know why it does that.  So, I filed CODEGEN-4496 in the SDOWP system to have this investigated.  You are welcome to follow it with the SDOWP link below in my signature.

    Thanks and regards,

    -George