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.

LAUNCHXL-F280049C: CCS linker files incompatible with TI-RTOS Kernel (SYS/BIOS) examples?

Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: SYSBIOS, TMS320F280049, C2000WARE

Hi everyone,

Installed Code Composer Studio, Version: 10.2.0.00009
Installed SYS/BIOS, Version: 6.83.00.18

Target: LAUNCHXL-F280049C

I'm new to C2000 Piccolo MCUs and wanted to do some initial tests to gain
knowledge. Therefore, I have created a first SYS/BIOS "Hello World"
Programme from the examples in the resource directory:
C:/ti/bios_6_83_00_18/resources/tiTargetExamples/28xSpecificExamples/com_ti_rtsc_sysbios_example_239.projectspec

The example doesn't creates a linker cmd file and so I used the files
provided by CCS (280049C_RAM_lnk.cmd and 280049_FLASH_lnk.cmd)

Now I was able to compile the software, but linking fails:

Invoking: C2000 Linker
"C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.12.0.STS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -O2 --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=coffabi -z -m"Test3.map" --stack_size=0x200 --warn_sections -i"C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.12.0.STS/lib" -i"C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.12.0.STS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="Test3_linkInfo.xml" --rom_model -o "Test3.out" "./hello.obj" "../280049M_FLASH_lnk.cmd" -l"configPkg/linker.cmd" -llibc.a
<Linking>
warning #10247-D: creating output section ".data" without a SECTIONS specification
warning #10247-D: creating output section ".binit" without a SECTIONS specification
warning #10247-D: creating output section ".cio" without a SECTIONS specification
"../280049M_FLASH_lnk.cmd", line 82: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section ".econst" size 0x1da2page 0. Available memory ranges:
FLASH_BANK0_SEC4 size: 0x1000 unused: 0x1000 max hole: 0x1000
"../280049M_FLASH_lnk.cmd", line 80: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section ".ebss" size 0xa79page 1. Available memory ranges:
RAMLS5 size: 0x800 unused: 0x800 max hole: 0x800
"configPkg/linker.cmd", line 73: warning #10097: memory range not found: D01SARAM on page 0
"configPkg/linker.cmd", line 72: error #10265: no valid memory range available for placement of ".text:ti_catalog_c2800_initF2837x_flashfuncs"
"configPkg/linker.cmd", line 72: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section ".text:ti_catalog_c2800_initF2837x_flashfuncs" size 0x2bpage 0
"configPkg/linker.cmd", line 72: warning #10097: memory range not found: FLASHA on page 0
"configPkg/linker.cmd", line 72: error #10265: no valid memory range available for placement of ".text:ti_catalog_c2800_initF2837x_flashfuncs"
"configPkg/linker.cmd", line 72: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. load placement with alignment/blocking fails for section ".text:ti_catalog_c2800_initF2837x_flashfuncs" size 0x2bpage 0
error #10010: errors encountered during linking; "Test3.out" not built

>> Compilation failure
makefile:141: recipe for target 'Test3.out' failed
gmake[1]: *** [Test3.out] Error 1
makefile:137: recipe for target 'all' failed
gmake: *** [all] Error 2

**** Build Finished ****


After a few hours of dealing with this problem, I found a workaround.

SYS/BIOS provides a linker cmd file for TMS320F280049M. With this linker
file I can also link the software. It seems to me that the SYS/BIOS package
is missing the necessary linker-cmd files for TMS320F280049(C).


Is this behavior expected or a known problem?

  • Yes, this is a known issue. As you've pointed out the TMS320F280049M examples are the only ones with cmd files that build with SYS/BIOS out of the box.

    If you want to use a different cmd file in your project, like one out of C2000Ware, the main thing you need to do is update the Flash functions options in the Boot module to match your cmd file:

    Then it will be a matter of editing the cmd file to add sections for .binit and .cinit in Flash, and .cio in RAM and resolve whatever size issues remain (e.g. allocating another flash sector to .econst if it's too big for one).

    Whitney