Other Parts Discussed in Thread: SFRA, C2000WARE, CONTROLSUITE
Tool/software: TI C/C++ Compiler
I am updating a project developed in ControlSuite v160 to the latest C2000Ware and C2000Ware_DigitalPower_SDK_3_00_00_00. Part of the updates is changing the SFRA from V1_10_00_00 to V1_40_00_00. A lot changes between those versions and a lot of things broke. I've managed to fix all the things that were preventing the project from building, but I am unclear about how to configure the linker cmd file. I get a "no matching section" warning that I don't understand.
The SFRA User's Guide (SPRUIK4A–September 2018–Revised June 2019) has this example code for the cmd file:
ramfuncs : LOAD = FLASHD,
RUN = RAML0L1,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
{
--library=sfra_f32_coff.lib<SFRA_F32_inject.obj>
--library=sfra_f32_coff.lib<SFRA_F32_collect.obj>
}
….
SFRA_F32_Data : > dataRAM1, PAGE = 1
I am running from RAM, so I don't think most of this applies. This is what I came up with, modeled on the old command file 2837xS_RAM_DP_BoosterPack.CMD from ControlSuite project Buck_VMC_F2837xS.
MEMORY
{
...
RAMLS1_LS2 : origin = 0x008800, length = 0x001000
// RAMLS3 : origin = 0x009800, length = 0x000800
RAMLS4 : origin = 0x00A000, length = 0x000800
...
}
SECTIONS
{
...
def __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc : >> RAMLS1_LS2 | RAMLS4, PAGE = 0
{
--library=sfra_f32_coff.lib<SFRA_F32_inject.obj> // *** LINE 72 ***
--library=sfra_f32_coff.lib<SFRA_F32_collect.obj> // *** LINE 73 ***
}
#else
ramfuncs : >> RAMLS1_LS2 | RAMLS4, PAGE = 0
{
--library=sfra_f32_coff.lib<SFRA_F32_inject.obj>
--library=sfra_f32_coff.lib<SFRA_F32_collect.obj> }
}
#endif
#endif
//
// OLD SFRA section from F2837xS_RAM_DP_BoosterPack.CMD in project Buck_VMC_F2837xS
// ramfuncs : >> RAMLS1_LS2 | RAMLS4, PAGE = 0
// {
// --library=SFRA_F_Lib.lib<SFRA_F_INJECT.obj>
// --library=SFRA_F_Lib.lib<SFRA_F_COLLECT.obj>
// }
...
}
The linker completes but I get two warnings I don't understand:
<Linking>
"../2837x_RAM_lnk_cpu1-local.cmd", line 72: warning: no matching section
"../2837x_RAM_lnk_cpu1.cmd-local", line 73: warning: no matching section
These warnings refer to these two lines as shown above:
--library=sfra_f32_coff.lib<SFRA_F32_inject.obj> // *** LINE 72 ***
--library=sfra_f32_coff.lib<SFRA_F32_collect.obj> // *** LINE 73 ***
What is the meaning of "no matching section"?