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/LAUNCHXL2-570LC43: File Loader: Verification failed

Part Number: LAUNCHXL2-570LC43

Tool/software: Code Composer Studio

Hello!

I tried to load program of LAUNCHXL2_570LC43:_Project_1 to LAUNCHXL2-570LC43.
But after erased flash, when start to load program, it occurred verification failed as follows.

CortexR5: File Loader: Verification failed: Values at address 0xF0407FF0 do not match Please verify target memory and memory map.

CortexR5: GEL: File: /Users/hoge/workspace_v7/Proj1_launchxl2_rm57l_570lc43/Project1_LAUNCHXL2_570LC43/Debug/Project1_LAUNCHXL2_570LC43.out: a data verification error occurred, file load failed.

When I changed 'vfill = 0xFFFFFFFF' to 'fill = 0xFFFFFFFF' directive to the end of each line that maps to Flash in the Memory{} section in the linker command file, it succeed to load program.
But I don't know why. Could you tell me why it works with 'fill', not 'vfill'?

  • Hi Kiyona,

    Do you use cmd file to generate ECC for the flash? Normally we use fill for VECTORS memory region.

    VFILL Specifier:

    A small extension has been made to the fill value specifier for memory ranges in the linker command file. Normally, specifying a fill value for a memory range will create initialized data sections to cover any previously uninitialized areas of memory. To generate ECC for an entire memory range, the linker either needs to have initialized data for the entire range, or needs to know what value uninitialized memory areas will have at run time. To accommodate the case where the user wants to generate ECC for the entire memory range, but does not want to initialize the entire range by specifying a fill value, the new "vfill" specifier may be used instead of a "fill" specifier:

     MEMORY {

         FLASH : origin=0x0000  length=0x4000  vfill=0xffffffff

     }

    The vfill specifier is functionally equivalent to omitting a fill specifier, except that it allows ECC generation to occur for areas of the input memory range that remain uninitialized. This has the benefit of reducing the size of the resulting object file.

    The "vfill" specifier has no effect other than in ECC generation. It cannot be specified along with a "fill" specifier, since that would introduce ambiguity.