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: Linker warning: "warning: no matching section"

Part Number: TMS320F28069


Tool/software: Code Composer Studio

Hello once more ;-)

when building my project, the mentioned linker warning appears (see linker messages below).
I cannot find any reason for this because the "missing" section (marked red below) is defined as can be seen in the
cited sequence of my linker command file...
If a "foreward reference" were the reason, the ".text" reference would
also cause that warning...
Is there any different explanation for it??

Best regards,
Goetz

// ----- linker messages   -----------------------------------------------

remark: automatic RTS selection:  linking in "rts2800_fpu32.lib" in place of
   index library "libc.a"
"../LinkerFiles/Example_Flash2806x_SW_API.cmd", line 114: warning: no matching
   section
         -lFlash2806x_API_wFPU_Library.lib(.econst)
Finished building target: "TMS320F28069.out"


// ---------- Linker Command File  -----------------------------


SECTIONS
{
 

   Flash28_API: // Applicable only when API is not in BootROM
   {
         -lFlash2806x_API_wFPU_Library.lib(.econst)
        -lFlash2806x_API_wFPU_Library.lib(.text)
   }                   LOAD = FLASHD,
                       RUN = PRAML1,
                       LOAD_START(_Flash28_API_LoadStart),
                       LOAD_END(_Flash28_API_LoadEnd),
                       RUN_START(_Flash28_API_RunStart),
                       PAGE = 0

   .cinit              : > FLASHA       PAGE = 0
   .pinit              : > FLASHA,      PAGE = 0
   .text               : > FLASHA       PAGE = 0
   codestart           : > BEGIN        PAGE = 0
   ramfuncs            : LOAD = FLASHA,
                         RUN = PRAML1,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

   csmpasswds          : > CSM_PWL_PROG PAGE = 0
   csm_rsvd            : > CSM_RSVD     PAGE = 0
   
   /* Allocate uninitalized data sections: */
   .stack              : > RAMM0        PAGE = 1
   .ebss               : > RAML3       PAGE = 1
   .esysmem            : > DRAML0       PAGE = 1

   /* Initalized sections go in Flash */
   /* For SDFlash to program these, they must be allocated to page 0 */
   .econst             : > FLASHA       PAGE = 0
   .switch             : > FLASHA       PAGE = 0      
...
...
...

  • Goetz,

    The warning is saying that you specified how to link the specific .econst section from the Flash2806x_API_wFPU_Library.lib, but that this section does not appear in your compiled build. You must not be calling any functions in the library that use this section.

    Regards,
    David
  • Hi David,

    I just took a look to my .map file. As I could see, a section ".econst" is present and populated by data.
    (This section shall hold constant data of the compiled flash library). Here is a text snippet from the concerning .map file:

    ... ...
    0000989e 00000002 : _lock.obj (.ebss:__unlock)

    .econst 0 003f59dc 0000014e
    003f59dc 00000100 F2806x_PieVect.obj (.econst:_PieVectTableInit)
    003f5adc 00000029 Convert.obj (.econst:.string)
    003f5b05 00000001 --HOLE-- [fill = 0]
    003f5b06 00000016 main.obj (.econst:.string)
    003f5b1c 0000000a ff.obj (.econst:.string)
    003f5b26 00000004 main.obj (.econst:_TestArray)

    .reset 0 003fffc0 00000002 DSECT
    003fffc0 00000002 rts2800_fpu32.lib : boot28.obj (.reset)

    vectors 0 003fffc2 00000000 DSECT
    ... ...

    So, what else could be a reason for such a warning?

    Best regards,
    Goetz
  • Goetz,

     You have a .econst section, but you do not have .econst contribution from objects in the Flash2806x_API_wFPU_Library.lib file.  The .map file excerpt you showed indicates .econst contributions from F2806x_PieVect.obj, Convert.obj, main.obj, etc.

    You specified in the .cmd file how to specifically link the .econst section coming from the Flash2806x_API_wFPU_Library.lib.  This does not exist, and hence the warning.

    Regards,

    David

  • Hi David,

    does this mean that simply no use of .econst is made by Flash2806x_API_wFPU_Library.lib? -- No contants to store there?

    Regards,
    Goetz
  • HI Goetz,

    I do not know the contents of the library off hand, but it likely means that the library uses .econst, but not the objects (functions) that you have pulled in to your code.

    - David