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.

One checksum to rule them all?

I'm using the linker-generated CRC tables functionality for generating an application checksum at link time. My goal is to generate one checksum that covers all the contents in flash. I have almost managed this, but struggle somewhat with the "ramfuncs" section.

The linker command file extract below shows that ramfuncs is part of CRCSections, and is thus included in the checksum calculation.

SECTIONS
{
    CRCSections:
    {
        *(.text)
        *(.econst)
        *(.switch)
        *(.cinit)
        *(ramfuncs)
    } crc_table(_crcApplicationTable, algorithm=CRC32_PRIME) > FLASH PAGE = 0
    .TI.crctab: { } > FLASHCRC PAGE = 0 /* Store crc_table */
}
In addition to have "ramfuncs" be included in the checksum calculation, I want to define the LOAD_START, LOAD_END and RUN_START addresses for the "ramfuncs" section. I know how to achieve this when the "ramfuncs" section is defined as below:

ramfuncs : LOAD = FLASH,
RUN = RAML0123,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart) PAGE = 0

What I don't understand is how to combine the LOAD_START, LOAD_END and RUN_START addresses with the "ramfuncs" definition in the CRCSections. Is it possible? 

Note: I do not want to add another record to the crc_table as below. 

ramfuncs : LOAD = FLASH,
RUN = RAML0123,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart)
crc_table(_crcApplicationTable, algorithm=CRC32_PRIME)
PAGE = 0