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/TMS320F28379D: Getting linker issue while compiling project with custom made Flash run time library

Part Number: TMS320F28379D
Other Parts Discussed in Thread: TMS320F28388D

Tool/software: TI C/C++ Compiler

Hi,

I have created one static library which is a flash run time library,

which has following compiler linker options:

SET COMPILER_FLAGS= -v28 -mt -ml --float_support=fpu32 --include_path="C:\ti\ccs1000\ccs\tools\compiler\ti-cgt-c2000_20.2.0.LTS\include" --include_path="C:\Users\h352524\workspace_v10\rts_TMS320F28388D_Flash_Lib" --include_path="C:/Users/h352524/workspace_v10/rts_TMS320F28388D_Ram_Lib" --include_path="C:/Users/h352524/Desktop/CGCU/C2000_F021_FlashAPI_V1.60_QT/C28x/F021DEV_C2000/API/Include/F021" --include_path="C:/Users/h352524/Desktop/CGCU/C2000_F021_FlashAPI_V1.60_QT/C28x/F021DEV_C2000/API/Include/Fapi" --advice:performance=all --define=_C28X --define=_LITTLE_ENDIAN --define=_F2838x --undefine=_CONCERTO --undefine=_F2838x_QT --undefine=_F28004x_FPGA --undefine=_F2837xD --undefine=_F2837xS --undefine=_BIG_ENDIAN --undefine=_F28004x -k -al -g --diag_warning=225 --diag_wrap=on --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency

And have following source file functionalitites.

auto_init
startup.c
cpy_tbl.c
pre_init.c
copy_decompress_none.c
_lock.c
args_main.c
sqrt_f32.asm
ll_aox28.asm
ll_cmp28.asm
ll_div28.asm
ll_mpy28.asm
log_f32.asm
errno.c
exit.c
frexp.c
atol.c
ctype.c
u_div28.asm
div_f32.asm
boot28.asm
ctype.h
errno.h

I have integrated this status library in my project with the other two libraries as well (flash_api and ram based), but this is creating a problem while linking. Attached is the screenshot of the error:

Also, TI_zero_init linking is a common problem I am facing while integrating this library even with the other projects. 

Kindly please help me to resolve this issue.

Regards,

Gurusha

  • Those undefined symbols are functions in the compiler RTS library.  For instance, __TI_zero_init is from the file copy_zero_init.c and __c28xabi_divf is from the file fs_div28.asm.  You need to add those files to one of your RTS flash libraries.

    Thanks and regards,

    -George

  • Is there any other option to use, instead of including the source files, for example, in project properties do we have any option to remove the linker issue by excluding the _TI_zero_init function.

    Also, I have one more doubt, since I am using compiler version 20.2.1.LTS and eabi output format, with these properties, could you help me to choose between the option for setting  _fp_mode={strict|relaxed}? (in the project properties-> C2000 compiler-> Optimization-> Floating point modes). Can you explain which option is better to choose? I referred to the compiler manual, spru514t but still not sure which is better? And is it also necessary to use advice_performace=all?  Because the settings are linked.

    Which is better to use? I need suggestions regarding this.

  • gurusha nahar said:
    Is there any other option to use, instead of including the source files, for example, in project properties do we have any option to remove the linker issue by excluding the _TI_zero_init function.

    Please search the C28x compiler manual for the sub-chapter titled Zero Initializing Variables.

    gurusha nahar said:
    help me to choose between the option for setting  _fp_mode={strict|relaxed}

    Please search the article Floating Point Optimization for --fp_mode.

    gurusha nahar said:
    is it also necessary to use advice_performace=all?

    No.  This option causes the compiler to issue diagnostics regarding ways to improve performance.  Feel free to use it as needed.

    Thanks and regards,

    -George