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/TMS570LC4357: CortexR5: File Loader: Verification failed:

Part Number: TMS570LC4357

Tool/software: Code Composer Studio

i am new to TI. please help me to resolve this below issue.

CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
CortexR5: File Loader: Verification failed: Values at address 0x00000000 do not match Please verify target memory and memory map.
CortexR5: GEL: File: E:\11.TI\PROJECT\TMS570LC43_RTOS_LEDS\Debug\TMS570LC43_RTOS_LEDS.out: a data verification error occurred, file load failed.

  • Hello,

    You are getting a common debug error known as a data verification error. The root cause can vary quite a bit and may involve some debug/investigation on your part. For more details on the error, please see:

    https://dev.ti.com/tirex/explore/node?node=APy2XbLelxyqBB2Yz0WR.w__FUz-xrs__LATEST

    Thanks

    ki

  • This error is occurring on previously working projects:

    CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR5: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.

    It started after an update to the xds110 firmware. Which I believe is part of the EMU pack update:

    Name: EMU20_M08

    Build Number: 9.2.1.00042

    Date: 2020-11-08

    Any insight would be greatly appreciated.

    I am working on a Hercules XL2-570LC43 board.  Running Windows 10.  CCS  Version: 10.1.0.00010

  • Hi Michael,

    After the target is connected, please find which gel file is called (CCS-->Tools). The flash should be mapped to 0x00000000 in the gel file.

  • hi ki,

    thanks for your response,

    i have tried in all methods still not able clear this error.

    the below is my sys_link_cmd file code. can you please suggest what changes needs to be done.

    /*----------------------------------------------------------------------------*/
    /* sys_link_freeRTOS.cmd */
    /* */
    /*
    * Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com
    *
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    *
    * Redistributions of source code must retain the above copyright
    * notice, this list of conditions and the following disclaimer.
    *
    * Redistributions in binary form must reproduce the above copyright
    * notice, this list of conditions and the following disclaimer in the
    * documentation and/or other materials provided with the
    * distribution.
    *
    * Neither the name of Texas Instruments Incorporated nor the names of
    * its contributors may be used to endorse or promote products derived
    * from this software without specific prior written permission.
    *
    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */

    /* */
    /*----------------------------------------------------------------------------*/
    /* USER CODE BEGIN (0) */
    /* USER CODE END */
    /*----------------------------------------------------------------------------*/
    /* Linker Settings */

    --retain="*(.intvecs)"

    /* USER CODE BEGIN (1) */
    /* USER CODE END */

    /*----------------------------------------------------------------------------*/
    /* Memory Map */

    MEMORY
    {
    #if 0
    VECTORS (X) : origin=0x00000000 length=0x00000020
    KERNEL (RX) : origin=0x00000020 length=0x00008000
    FLASH0 (RX) : origin=0x00008020 length=0x001F7FE0
    FLASH1 (RX) : origin=0x00200000 length=0x00200000
    STACKS (RW) : origin=0x08000000 length=0x00000800
    KRAM (RW) : origin=0x08000800 length=0x00000800
    RAM (RW) : origin=(0x08000800+0x00000800) length=(0x0007F800 - 0x00000800)
    #endif
    VECTORS (X) : origin=0x00000000 length=0x00000020 vfill = 0xffffffff
    KERNEL (RX) : origin=0x00000020 length=0x00008000 vfill = 0xffffffff
    FLASH0 (RX) : origin=0x00008020 length=0x001F7FE0 vfill = 0xffffffff
    FLASH1 (RX) : origin=0x00200000 length=0x00200000 vfill = 0xffffffff
    STACKS (RW) : origin=0x08000000 length=0x00000800
    KRAM (RW) : origin=0x08000800 length=0x00000800
    RAM (RW) : origin=(0x08000800+0x00000800) length=(0x0007F800 - 0x00000800)


    ECC_VEC (R) : origin=0xf0400000 length=0x4 ECC={ algorithm=algo_name, input_range=VECTORS }
    ECC_FLA0 (R) : origin=0xf0400000 + 0x4 length=0x3FFFC ECC={algorithm=algo_name, input_range=FLASH0 }
    ECC_FLA1 (R) : origin=0xf0440000 length=0x40000 ECC={ algorithm=algo_name, input_range=FLASH1 }
    /* USER CODE BEGIN (2) */
    /* USER CODE END */
    }

    /* USER CODE BEGIN (3) */
    /* USER CODE END */

    /*----------------------------------------------------------------------------*/
    /* Section Configuration */
    ECC
    {
    algo_name : address_mask = 0xfffffff8
    hamming_mask = R4
    parity_mask = 0x0c
    mirroring = F021
    }
    SECTIONS
    {
    .intvecs : {} > VECTORS
    /* FreeRTOS Kernel in protected region of Flash */
    .kernelTEXT align(32) : {} > KERNEL
    .cinit align(32) : {} > KERNEL
    .pinit align(32) : {} > KERNEL
    /* Rest of code to user mode flash region */
    .text align(32) : {} > FLASH0 | FLASH1
    .const align(32) : {} > FLASH0 | FLASH1
    /* FreeRTOS Kernel data in protected region of RAM */
    .kernelBSS : {} > KRAM
    .kernelHEAP : {} > RAM
    .bss : {} > RAM
    .data : {} > RAM

    /* USER CODE BEGIN (4) */
    /* USER CODE END */
    }

    /* USER CODE BEGIN (5) */
    /* USER CODE END */

    /*----------------------------------------------------------------------------*/
    /* Misc */

    /* USER CODE BEGIN (6) */
    /* USER CODE END */

    /*----------------------------------------------------------------------------*/

  • Hello Michael,

    I noticed that you use Linker cmd to generate ECC. You need to change the CCS loader settings so that the loader doesn't also try to generate ECC. Also verification during programming needs to be skipped because the data areas and ECC areas will now be programmed in separate steps.

    In CCS "Flash Settings", please check the following items:

    1. System Reset on Connect is checked
    2. Auto ECC Generation is unchecked
    3. Align program segments to 64-bit memory regions is checked
    4. Flash Verification Settings should be 'None'
    5. Perform Blank Check before Program Load must be unchecked

  • Dear QJ Wang,

    Thank you for your advice. after doing all those changes also i am getting the same error.

  • Hello,

    Just read your linker cmd file.

    The cmd file generates ECC for VECTORS, FLASH0, and FLASH1. But the ECC for KERNEL is missed.

  • Dear QJ Wang,

    i have created the ecc for kernel also. then also i am getting the same error.

    i have attached the screen shot of it. please suggest

  • Can you post the screenshot again? 

  • QJ,

    Thanks for the reply.  The default gel file remains properly mapped.

    The gel file I am using is the unaltered default for this board:

    c:\ti\ccs1010\ccs\ccs_base\emulation\gel\tms570lc43xx.gel

    It contains the following mapping:

    /*----------------------------------------------------------------------------*/
    /* Function - memmap(memSel, extMem) */
    /* */
    memmap(memSel, extMem){

    GEL_MapOff();
    GEL_MapReset();

    /* Flash / RAM Definition */
    if(memSel == FLASH){

    /* Flash Definition */
    GEL_MapAdd(0x00000000, 0, 0x00400000, 1, 0); /* Internal Flash () */
    GEL_MapAddStr(0xF0400000, 0, 0x00080000, "R|AS2", 0); /* Internal Flash ECC */
    GEL_MapAdd(0x08000000, 0, 0x00080000, 1, 1); /* Internal RAM */
    GEL_MapAdd(0x08400000, 0, 0x00080000, 1, 1); /* Internal RAM ECC */
    GEL_MapAdd(0xFE000000, 0, 0x01000000, 1, 1); /* CRC/PSA 1 */
    GEL_MapAdd(0xFB000000, 0, 0x01000000, 1, 1); /* CRC/PSA 2 */

    }

  • The GEL file is correct.

    Can you please re-post the screenshots or pictures your posted on Nov 19? I still think the issue is caused by the ECC.

  • QJ,

    I have done as you suggested and had no success, here is the  output:

    CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
    CortexR5: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
    CortexR5: File Loader: Verification failed: Values at address 0x00000000 do not match Please verify target memory and memory map.
    CortexR5: GEL: File: C:\Users\wasps\workspace10\IMU4\Debug\IMU4.out: a data verification error occurred, file load failed.

    Repeating from previous posting:

    This started after an update to the xds110 firmware. Which I believe is part of the EMU pack update:

    Name: EMU20_M08

    Build Number: 9.2.1.00042

    Date: 2020-11-08

    I am working on a Hercules XL2-570LC43 board.  Running Windows 10.  CCS  Version: 10.1.0.00010

    It started after an update to the xds110 firmware. Which I believe is part of the EMU pack update:

    Name: EMU20_M08

    Build Number: 9.2.1.00042

    Date: 2020-11-08

    I am working on a Hercules XL2-570LC43 board.  Running Windows 10.  CCS  Version: 10.1.0.00010

    Thanks again for your ideas.

    Mike

  • Hi Mike,

    Please share the IMU4.out with me. I will check on my board.

  • Hi QJ,

    Not sure how to do that?

    Mike

  • Mike,

    You can insert a file after clicking insert file button:

  • QJ,

    Thanks.  Will try from another browser.  I keep getting errors.

    Mike

  • Trying a zip file.  Maybe I am hitting a file size limit.7610.IMU4.zip

  • Just tried. There is no problem. I am using CCS10.

  • QJ,

    I agree, there is no problem with the executable.  I just successfully loaded started a debug session with the same executable.  I soldered a JTAG header on the board and attached with an XDS200 pod.  That works fine.  If I use the on board debugger, the xds110. It never even attempts to erase flash. 

    This started when I let CCS update the XDS110 firmware, is there a way I can revert it, or re-flash it?

  • QJ,

    I agree, there is no problem with the executable.  I just successfully loaded started a debug session with the same executable.  I soldered a JTAG header on the board and attached with an XDS200 pod.  That works fine.  If I use the on board debugger, the xds110. It never even attempts to erase flash. 

    This started when I let CCS update the XDS110 firmware, is there a way I can revert it, or re-flash it?

    Mike

  • Hi Mike,

    Please check this link: