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.

F28069U: what is .pinit and why is CRC not generated for this section?

Hello Community,
I use F28069U and CCS4 in my project. After building, I get this linker warning always:


CRC table operator (_CRCTestVector) ignored for ".pinit":  CRC table operator cannot be associated with empty output section

After some study, I understood that CRC table is generated during linking as per my CMD file.
However, why is this ignored for .pinit?
I went through this link but didn't find any description about ".pinit".

Could someone help me in decoding this and removing the warning?

thank you,

--
Vishwanatha

  • Hi Gautam,

    I went through the same post and understood about CRC generation. Howver, it doesn't give any information about ".pinit" section.

    Probably I have to move this post to compiler forum.

    Vishwanatha

  • Hi Vishwanatha!

    Could you please let us look at your CMD-file.

    Regards,

    Igor

  • Hi Igor,
    this is the part of CMD that has reference to .pinit


    SECTIONS
    {
        bl_table            : > 0x3D8000,   PAGE = 0, type = DSECT
        app_table           : > 0x3EC000,   PAGE = 0

        /* Allocate program areas: */
        // .cinit              : > APP_FLASH,      PAGE = 0
        // .pinit              : > APP_FLASH,      PAGE = 0
        // .text               : > APP_FLASH,      PAGE = 0
        // EXPECTED_CRCs       : > CRC             PAGE = 0
        // codestart           : > BEGIN,          PAGE = 0

       ramfuncs             : LOAD = APP_FLASH,
                              RUN = RAML0L1,
                              LOAD_START(_RamfuncsLoadStart),
                              LOAD_END(_RamfuncsLoadEnd),
                              RUN_START(_RamfuncsRunStart),
                              crc_table(_CRCTestVector),
                              PAGE = 0

       /* Allocate program areas: */
        GROUP               : > APP_FLASH,     PAGE = 0, crc_table(_CRCTestVector)
        {
            .cinit
            .pinit
            codestart
            .text
        }

        EXPECTED_CRCs       : > CRC           PAGE = 0

        .TI.crctab          : > APP_FLASH


    --
    Vishwanatha

  • Hi Vishwanatha,

    The .pinit section holds the table of constructors, so unless you are using C++ classes and objects, this section will be empty.

    The linker is just warning you that you are trying to compute the CRC of an empty section.

    You can find more info about these sections in the compiler guide SPRU514E section 4.3.6 and you can also find out about the link time CRC generation process in section 7.9 of the assembler guide SPRU513D