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.

TMS320F280049: run time support lib

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

Dear C2000 expert,

From F28004x Firmware Development Package User's Guilde, It mentioned that the run time support library should be rts2800_fpu32.lib instead of libc.a, but the example project, launchxl_ex1_f280049c_demo, is still using libc.a, can you please help me know what differences are between those 2 libs? Which lib should be used?

  • Jack,

    Check out this forum post for more information on the difference.

    Regards,

    Ozino

  • Hi Ozino,

    Thanks for this info. I found that this docs describe how the run-time support library works, what I would like to know are the differences between rts2800_fpu32.lib and libc.a?

    In addition, with the guideline of C:\ti\c2000\C2000Ware_2_00_00_02\device_support\f28004x\docs\F28004x_DEV_USER_GUIDE.pdf, I found that there is no need to add f28004x_codestartbranch.asm to project, my questions is that how the _c_init00 was called? 

  • Jack,

    If the library name is explicitly specified (e.g. -library=rts2800_ml.lib), run-time support looks for that library exactly. If the library name is not specified, the linker uses the index library libc.a to pick an appropriate library. If the library is specified by path (e.g. –library=/foo/rts2800_ml.lib), it is assumed the library already exists and it will not be built automatically.

    The codestartbranch.asm specifies the starting address for FLASH applications.

    Regards,

    Ozino

  • Ozino,

    Thanks. But can you please help me know why F28004x_DEV_USER_GUIDE recommends to use rts2800_fpu32.lib? What are the advantages of rts2800_fpu32.lib compared with libc.a?

    I know the codestartbranch.asm specifies the starting address for FLASH applications, but the F28004x_DEV_USER_GUIDE didn't mention to add this asm file while creating a new project, can you please help me know why? Is it necessary to add codestartbranch.asm into project?

  • Jack,

    The difference is that libc.a is a placeholder that automatically links in the appropriate rts library. By specifying rts2800_fpu32.lib, we force the compiler to linker the fpu32 version of that library. That specific version of the rts library needs to be linked if your application will be using FPU library and operations.

    The user guide probably did not mention it since it was probably describing the steps for a RAM build configuration.

    Regards,

    Ozino

  • Thanks...

    May I have a way to get source code of both rts2800_fpu32.lib and libc.a? That would help me understand the differences more clearly.

  • Please understand that libc.a is an index library, and not an object code library.  For that reason, there is no source code for it.  For a general understanding of the concept of an index library, please search the C2000 assembly tools manual for the sub-chapter titled Library Information Archiver Description.  

    The source code to the RTS library is part of the compiler distribution.  If you have CCS installed on a Windows system, here is a typical location for the library source code ...

    C:\ti\ccs910\ccs\tools\compiler\ti-cgt-c2000_18.12.2.LTS\lib\src

    Thanks and regards,

    -George