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.

CCS/TMS320F28035: C2000Ware v2.00.00.02: 28035_IQsampleC example

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE, CCSTUDIO

Tool/software: Code Composer Studio

The new SDK v2.0.0.2 example: 28035_IQsampleC

fails with the following error: 

**** Build of configuration Debug for project 28035_IQsampleC ****

"C:\\ti\\ccs901\\ccs\\utils\\bin\\gmake" -k all 
 
Building file: "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/CodeStartBranch.asm"
Invoking: C2000 Compiler
"C:/ti/CGT/ti-cgt-c2000_6.0.1/bin/cl2000" -v28 -ml -mt --cla_support=cla0 -O3 -g --optimize_with_debug --include_path="C:/ti/CGT/ti-cgt-c2000_6.0.1/include" --include_path="C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/include" --define="_DEBUG" --define="LARGE_MODEL" --quiet --diag_warning=225 -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="CodeStartBranch.d_raw"  "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/CodeStartBranch.asm"
Finished building: "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/CodeStartBranch.asm"
 
Building file: "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/IQsampleSmall.c"
Invoking: C2000 Compiler
"C:/ti/CGT/ti-cgt-c2000_6.0.1/bin/cl2000" -v28 -ml -mt --cla_support=cla0 -O3 -g --optimize_with_debug --include_path="C:/ti/CGT/ti-cgt-c2000_6.0.1/include" --include_path="C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/include" --define="_DEBUG" --define="LARGE_MODEL" --quiet --diag_warning=225 -k --asm_listing --output_all_syms --preproc_with_compile --preproc_dependency="IQsampleSmall.d_raw"  "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/IQsampleSmall.c"
Finished building: "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/C/source/IQsampleSmall.c"
 
Building target: "28035_IQsampleC.out"
Invoking: C2000 Linker
"C:/ti/CGT/ti-cgt-c2000_6.0.1/bin/cl2000" -v28 -ml -mt --cla_support=cla0 -O3 -g --optimize_with_debug --define="_DEBUG" --define="LARGE_MODEL" --quiet --diag_warning=225 -k --asm_listing --output_all_syms -z -m"28035_IQsampleC.map" --stack_size=0x300 --heap_size=2000 --warn_sections -i"C:/ti/CGT/ti-cgt-c2000_6.0.1/lib" -i"C:/ti/CGT/ti-cgt-c2000_6.0.1/include" -i"C:/ti_SDK/C2000Ware/v2_00_00_02/CCS901/28035_IQsampleC" -i"C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib" --reread_libs --xml_link_info="28035_IQsampleC_linkInfo.xml" --entry_point=code_start --rom_model -o "28035_IQsampleC.out" "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/bootROM_symbols/2803x_IQmath_BootROMSymbols.lib" "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib/IQmath.lib" "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28035_IQmath_lnk.cmd" "./CodeStartBranch.obj" "./IQsampleSmall.obj"  -lrts2800_ml.lib 
 
>> Compilation failure
makefile:137: recipe for target '28035_IQsampleC.out' failed
"C:\\Users\\Tomasz\\AppData\\Local\\Temp\\322843", line 16: warning: cannot
   resolve archive
   C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib/
   IQmath.lib to a compatible library, as no input files have been encountered
"C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28035_IQmath_lnk.cmd", line 72: warning: 
   no matching section
"C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28035_IQmath_lnk.cmd", line 76: warning: 
   no matching section
 
 undefined       first referenced   
  symbol             in file        
 ---------       ----------------   
 __IQ24asin      ./IQsampleSmall.obj
 __IQ24atan2PU   ./IQsampleSmall.obj
 __IQ24exp       ./IQsampleSmall.obj
 __IQ24log       ./IQsampleSmall.obj
 __IQ24mpyI32int ./IQsampleSmall.obj
 
error: unresolved symbols remain
warning: entry-point symbol other than "_c_int00" specified:  "code_start"
error: errors encountered during linking; "28035_IQsampleC.out" not built
gmake: *** [28035_IQsampleC.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

  • Tomasz,

    Thanks for pointing this out.

    We are aware of this (in fact 2 other projects in the same examples folder also fail) - these 3 build failures are known issues and are even captured as part of release notes.

    The issue is that the linker command files specifically uses the IQmath.lib in sections specification but IQmath.lib is now the index library while IQmath_coff.lib is the resolved one. If you still want to build it without spending much time on this, the fastest fix is replacing IQmath.lib by IQmath_coff.lib in the linker cmd file. But the ideal approach is to allocate sections for the table in their source assembly files itself using “.section” directive instead of doing this in the linker cmd file.

    Thanks,
    Sira
  • Sira,

    Thanks!

    By the way.
    I have found faster fix then yours. 
    Using "Linked Resources" and changing IQmath.lib location to the INSTALLROOT_IQMATH\lib\IQmath_coff.lib
    requires only one change instead of two within the linker cmd file. 

  • Tom,

    Great!

    Thanks,

    Sira

  • Hello Sira, 

    Sira Rao80 said:
    these 3 build failures are known issues and are even captured as part of release notes.


    I understand that you refer to:

    IQMATH-31
    Indexed library will result in build failure for some legacy device projects 
    S3-
    Minor None

    I have found 19 *IQSample* examples and the following, 11 of them, fail when building as out of the box:

    28027_IQsampleC
    28035_IQsampleC
    28035_IQsampleCpp
    28069_IQsampleC
    28069_IQsampleCpp

    28235_IQsampleCpp
    28335_IQsampleCpp
    2837xd_IQsampleC
    2837xd_IQsampleCpp
    2838_IQsampleCpp

    and 2838x_IQsampleC. 

    Sira Rao80 said:
    The issue is that the linker command files specifically uses the IQmath.lib in sections specification but IQmath.lib is now the index library while IQmath_coff.lib is the resolved one.


    Sira Rao80 said:
    But the ideal approach is to allocate sections for the table in their source assembly files itself using “.section” directive instead of doing this in the linker cmd file.

    My understanding is that we have two separate issues:
    1) the object resolving
    2) the sections specification. 

    Linking explicitly with IQmath_coff.lib solves first issue. 

    Using 28035_IQsampleC example and providing explicitly linking with the indexed IQmath.lib, I added:
    .ref __IQ24asin
    .ref __IQ24atan2PU
    .ref __IQ24exp
    .ref __IQ24log
    .ref __IQ24mpyI32int
    to the CodeStartBranch.asm and I have obtained:

    cannot resolve archive
    C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib/
    IQmath.lib to a compatible library, as no input files have been encountered.

    This is the same issue like in case of the out of the box example. 
    In my opinion it has nothing to do with the case that "the linker command files specifically uses the IQmath.lib in sections specification".
    Linking with IQmath_coff.lib resolves objects however build leaves the messages: 

    warning: creating output section "IQmathTablesRam" without a SECTIONS specification
    warning: entry-point symbol other than "_c_int00" specified:  "code_start"

    My understanding is that:

    Sira Rao80 said:
    But the ideal approach is to allocate sections for the table in their source assembly files itself using “.section” directive instead of doing this in the linker cmd file.

    would not resolve the undefined symbols issue. 

    Another example and interesting issue, the 28069_IQsampleC:

    >> Compilation failure

    makefile:143: recipe for target '28069_IQsampleC.out' failed

    warning: cannot resolve archive

       C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib/

       IQmath_fpu32.lib to a compatible library, as no input files have been

       encountered

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd", line 71: warning: 

       no matching section

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd", line 75: warning: 

       no matching section

     

     undefined       first referenced   

      symbol             in file        

     ---------       ----------------   

     __IQ24asin      ./IQsampleSmall.obj

     __IQ24atan2PU   ./IQsampleSmall.obj

     __IQ24exp       ./IQsampleSmall.obj

     __IQ24log       ./IQsampleSmall.obj

     __IQ24mpyI32int ./IQsampleSmall.obj

     

    error: unresolved symbols remain

    warning: entry-point symbol other than "_c_int00" specified:  "code_start"

    error: errors encountered during linking; "28069_IQsampleC.out" not built

    gmake: *** [28069_IQsampleC.out] Error 1

    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

    However I tried to build it with ti-arm v18.2.1.LTS because IQmath_fpu32_coff.lib was built with the assembler v18.2.1.LTS and my build results:

    >> Compilation failure

    makefile:143: recipe for target '28069_IQsampleC.out' failed

    warning: cannot resolve archive

       C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/lib/

       IQmath_fpu32.lib to a compatible library, as no input files have been

       encountered

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd", line 71: warning: 

       no matching section

    "C:/ti/C2000Ware/C2000Ware_2_00_00_02_Software/libraries/math/IQmath/c28/examples/cmd/28069_IQmath_lnk.cmd", line 75: warning: 

       no matching section

     

     undefined first referenced     

      symbol       in file          

     --------- ----------------     

     _c_int00  ./CodeStartBranch.obj

     

    error: unresolved symbols remain

    warning: entry-point symbol other than "_c_int00" specified:  "code_start"

    error: errors encountered during linking; "28069_IQsampleC.out" not built

    gmake: *** [28069_IQsampleC.out] Error 1

    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

    The same linker commands like in case of the 28035_IQsampleC example, the same compiler version for both the example and the library and object names were resolved. It is in opposition to your statement: The issue is that the linker command files specifically uses the IQmath.lib in sections specification but IQmath.lib is now the index library while IQmath_coff.lib is the resolved one.

    Another issue: why the _c_int00 was not resolved?

    And another issue: when I switch back to the out of the box TI compiler v6.0.1, 
    CCS creates the project.log file containing:

    !CONFIGURATION: 'com.ti.ccstudio.buildDefinitions.C2000.Debug.657173674' [Thu Jun 06 03:58:21 CEST 2019]
    !TOOL: 'com.ti.ccstudio.buildDefinitions.C2000_6.0.exe.compilerDebug.530579485'
    !WARNING: Unresolved option: com.ti.ccstudio.buildDefinitions.C2000_6.0.compilerID.ABI

    What does it mean? How does it affect project setup?

    The issue is that the linker command files specifically uses the IQmath.lib in sections specification but IQmath.lib is now the index library while IQmath_coff.lib is the resolved one.

  • Tom,

    I have asked an expert in this area to address your questions. You should be hearing from him shortly.

    Thanks,

    Sira

  • Tom,

    Some of the issues you have identified will be taken up as part of our next software update and we will update in 3Q release of C2000WARE what we can fix. There are issues with the indexed libraries support in devices that are older.  We are recommending you to use the prior version of C2000WARE for devices other than F2838x or F2837x for IQMATH use.  I hope this does not work as a show stopper in near term of your projects.  

    Thanks

    Aravindhan