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.

File Loader: Verification Failed



Hi,

I've been trying to get the HUA demo from MCSDK running on my C6678 DSP board through CCS6, the project can compile but has the following error:

C66xx_0: File Loader: Verification failed: Values at address 0x000000008143E020 do not match Please verify target memory and memory map.
C66xx_0: GEL: File: C:\ti\mcsdk_2_01_02_06\demos\hua\evmc6678l\Debug\hua_evmc6678l.out: a data verification error occurred, file load failed.

I think it has something to do with our memory map configuration, here is what we have in our evm.cfg file:

Program.sectMap[".vecs"] = {loadSegment: "MSMCSRAM", loadAlign:8}; /* CSL per core data structures */
Program.sectMap[".switch"] = {loadSegment: "MSMCSRAM", loadAlign:8}; /* CSL per core data structures */
Program.sectMap[".cio"] = {loadSegment: "MSMCSRAM", loadAlign:8}; /* per core data structures */
Program.sectMap[".args"] = {loadSegment: "MSMCSRAM", loadAlign:8}; /* per core data structures */
Program.sectMap[".cppi"] = {loadSegment: "MSMCSRAM", loadAlign:16}; /* per core data structures */
Program.sectMap[".far:NDK_OBJMEM"]= {loadSegment: "MSMCSRAM", loadAlign:16}; /* NDK structures */
Program.sectMap[".nimu_eth_ll2"]= {loadSegment: "MSMCSRAM", loadAlign:16}; /* per core data structures */
Program.sectMap[".qmss"] = {loadSegment: "MSMCSRAM", loadAlign:16}; /* per core data structures */
Program.sectMap[".resmgr_memregion"] = {loadSegment: "MSMCSRAM", loadAlign:128}; /* QMSS descriptors region */
Program.sectMap[".resmgr_handles"] = {loadSegment: "MSMCSRAM", loadAlign:16}; /* CPPI/QMSS/PA Handles */
Program.sectMap[".resmgr_pa"] = {loadSegment: "MSMCSRAM", loadAlign:8}; /* PA Memory */
Program.sectMap[".stack"] = "MSMCSRAM";

Program.sectMap[".bss"] = "DDR3"; /* BSS. .neardata and .rodata are GROUPED */
Program.sectMap[".neardata"] = "DDR3";
Program.sectMap[".rodata"] = "DDR3";
Program.sectMap["systemHeap"] = {loadSegment: "DDR3", loadAlign:128}; /* XDC Heap .. eg Memory_alloc () */
Program.sectMap[".far"] = "DDR3";
Program.sectMap[".cinit"] = "DDR3";
Program.sectMap[".const"] = "DDR3";
Program.sectMap[".text"] = "DDR3";
Program.sectMap[".code"] = "DDR3";
Program.sectMap[".data"] = "DDR3";
Program.sectMap[".sysmem"] = "DDR3"; /* Malloc memory area */
Program.sectMap["platform_lib"] = "DDR3"; /* Platform Library data structures */
Program.sectMap[".gBuffer"] = {loadSegment: "DDR3", loadAlign:32}; /* Upload buffer used by the Web Server */
Program.sectMap[".far:WEBDATA"] = {loadSegment: "DDR3", loadAlign: 32}; /* Web Pages and web server structures */

/* For newer BIOS 6.32 Program.sectMap[".far:taskStackSection"]= "MSMCSRAM"; */ /* BIOS task stacks */
Program.sectMap[".far:taskStackSection"]= "MSMCSRAM";
Program.sectMap[".far:NDK_PACKETMEM"]= {loadSegment: "MSMCSRAM", loadAlign: 128}; /* NDK Buffer Pool */

Also this is an excerpt from the generated linker.cmd file.  The length of the DDR3 regions seems too long since there are 8 cores and not enough room from 0x80000000 to 0xf0000000:

MEMORY
{
L2SRAM (RWX) : org = 0x800000, len = 0x80000
MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000
DDR3 : org = 0x80000000, len = 0x20000000
}

We have other projects debugging successfully, so it shouldn't be an issue with the hardware setup.

Thanks,

Shang

  • Shang,

    Because your question is specific to the MCSDK, I went ahead and moved this thread over to the device forum in hopes that it will get a faster response there.
  • Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    We will get back to you on the above query shortly. Thank you for your patience.

  • Did you select the gel file for core0 before running the code ?
    Also, please make sure that you have selected "DSP no-boot" mode.


    We have other projects debugging successfully, so it shouldn't be an issue with the hardware setup.

    Did you change anything on the code ?
  • Hi Titus,

    I can now load the existed executable (.out file) with correct gel settings. So the problem is kind of solved now.

    But I'm still confused about why I cannot build the source and load it, the only source I modified was the evm.cfg file, (if I don't there will still be similar errors).

    Thanks,
    Shang
  • Hi Shang,

    I'm able to build and run the "hua" demo code.
    Running without any issue if you are not changed in evm.cfg ?

    Could you attach the modified the evm.gel file to check.

    Regards,
    Shankari.
  • Hi Shankari,

    Here is the cfg file. 

    Thank you,

    Shang

    evm.cfg

  • Hi Shang,

    Running without any issue if you are not changed in evm.cfg ?
    Sure, I will try with your cfg file and let me update.

    Regards,
    Shankari.
  • Hi Shang,

    We tried out your cfg file and made it build ( Solved few build errors ) and able to run as expected.

    In debug mode, it stays at main() function.

    Here are the Steps:

    1. Have your *.cfg file added in your project.

    2. Go to CCS debug window, Go to Tools --> RTSC Tools --> Platforms-->Edit/view -- > give the path as "C:\ti\mcsdk_2_01_02_06\demos\hua\evmc6678l" and make sure that the memory section name used in the *.cfg matches with the name given in the platform package window.

    3. Now, build the project successfully and run in debug mode.

    4. Observe that it stays at main().

    Regards,

    Shankari

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.
    --------------------------------------------------------------------------------------------------------