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/TMS320F28069: Errors when updating from controlSUITE and v6 c2000 compiler to c2000Ware and v18 c2000 compiler

Part Number: TMS320F28069
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: Code Composer Studio

I have been working on updating an f28069 project that uses the F2806x_headers files from controlSUITE and the C2000 Code Generation Tools v6.2.10 compiler. I am trying to update the project to use the F2806x_headers files from C2000Ware and the C2000 Code Generation Tools v18.12.0.LTS compiler. I am able to get everything to compile except the linker file. The project uses the flashAPI for the f280069. I am getting this error when building with the v18 compiler:

"../Cmd/F28069_new.cmd", line 154: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section ".text" size 0x10526 page 0. Available memory ranges:
FLASH_DEFG size: 0xfdfc unused: 0x1 max hole: 0x1 
FLASH_H size: 0x4000 unused: 0x0 max hole: 0x0

Also, I get a warning saying no matching section for this part of the linker file (the -lrts2800_fpu32.lib part):

  appstart:
   {
       -lrts2800_fpu32.lib <boot.obj>(.text)
   } LOAD = FLASH_STRAP,
     PAGE = 0

When the project starts building, I get this message in the console twice:

'cp' is not recognized as an internal or external command,
operable program or batch file.

I am mostly wondering about the "'cp' not recognized as a command". Why would I get that in the console during building with the v18 compiler and not the v6 compiler? Also, why would I get the other errors described above when building with v18 compiler and not the v6?

  • Jake,

    With regards to the first error about data not fitting in .text section, I will recommend you reference this wiki page on details on how to combine or split information across memory sections.

    http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking#Q:_The_linker_says_.22placement_fails_for_object_.27.text.27_.22._How_can_I_make_more_memory_available_for_.text.3F

    I would also recommend you start with one of the linkers provided in C2000Ware. Then add your modfications on top of that cmd file. I'll have someone on the compiler team comment on your second error/question.


    Regards,

    Ozino

  • To address the following ...

    Jake Johnson22 said:

    I get a warning saying no matching section for this part of the linker file (the -lrts2800_fpu32.lib part):

    1
    2
    3
    4
    5
    appstart:
     {
         -lrts2800_fpu32.lib <boot.obj>(.text)
     } LOAD = FLASH_STRAP,
       PAGE = 0

    Change those linker command file lines to something similar to ...

             appstart:
             {
                 rts2800_fpu32.lib <boot*.obj>(.text)
             } > EXT

    The name of the object file which contains the boot routine changed from boot.obj to boot28.asm.obj.  By using this filename with a wild card, you make it less likely other changes in the name of the boot object file will cause problems.  

    On a lesser note, you also don't need the leading -l.  That's because the <> around the name of the object file have the same effect.

    Thanks and regards,

    -George