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/TMS320F28023: Asked for no runtime support lib, still getting one.

Part Number: TMS320F28023

Tool/software: Code Composer Studio

Win7 32bit, CCS 6.2, F28023.

I am attempting to temporarily eliminate the run-time support library to try to find a module I have that is including library functions I don't want (like printf).

I have set the "runtime Support Library" to none yet a library is still being included.

Questions (see amplifications below):

1) how do I get CCS to not include the rts in the build?

2) Is a run-time library forced? Do I have to make one without functions I don't want?

3) In lieu of including the rts, can I just include the source asm files from the lib\src folder in my project?

Steps to test:

1) Under    Project->properties->CCS General->main tab  I click the down arrow and selected none. (later when I come back and look, the field is blank, not none.)

The link did not fail, it just used rts2800_ml.lib.

2) I renamed the lib in C:\ti\ccsv6\tools\compiler\ti-cgt-c2000_6.4.6\lib

It rebuilt the library (this took some time,) and then the compile actually failed. The new replacement lib is a tiny bit smaller then the original, by about 40 bytes. (according to windows.)

Comments:

There is one error message I do not understand after step 2.

The last two error messages after test 2 are:

makefile:169: recipe for target 'main-build' failed
makefile:164: recipe for target 'all' failed

This implies there are 2 recipes one called all, a second called main-build. Please tell me where to locate these. I think I do not need both.

Thanks, Mark.

  • Cool Javelin said:
    1) how do I get CCS to not include the rts in the build?

    As well as changing the Runtime support library under General -> Tool Chain to <none> (aka blank) you also need to tick the Build -> C2000 Linker -> File Search Path -> Disable Automatic RTS selection (--disable_auto_rts) option.

    Cool Javelin said:
    2) Is a run-time library forced? Do I have to make one without functions I don't want?

    The C compiler assumes that the run-time library will perform some initialization before main is reached. E.g. zero initialize variables in the .ebss segment. What features on the run-time library does your program make use of?

    Cool Javelin said:
    3) In lieu of including the rts, can I just include the source asm files from the lib\src folder in my project?

    I think that would work, but might be an iterative process to satisfy all the required dependencies, and may require setting predefined symbols if the RTS source files use conditional compilation. Not sure if this would solve your problem of getting unwanted library functions linked in, as normally functions like printf only get called from the application rather than from inside the run time library.

    Cool Javelin said:
    There is one error message I do not understand after step 2.

    The last two error messages after test 2 are:

    makefile:169: recipe for target 'main-build' failed
    makefile:164: recipe for target 'all' failed

    This implies there are 2 recipes one called all, a second called main-build. Please tell me where to locate these. I think I do not need both.

    The way CCS auto-generates makefiles there are multiple make targets, where the target 'all' invokes a build of all the lower-level targets in the project (e.g. compiling individual source files). Having both make targets reported in the build failure isn't an issue, when the build stops with an error on one of the lower-level targets it is expected than a build failure is also reported for the 'all' target.

  • Thanks Chester.

    It is always good to make two places to do the same thing. Just keeps us on our toes.

    Mark.