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.

What causes "Data verification failed at address X"?



Hello,

I'm using CCS version 4.2.0.10018 and SYS/BIOS 6.30.2.42 to develop an application for the TMS320DM6437. This processor is on a custom board that we have developed.

I get the following error when I try to run my program in the debugger:

C64XP_0: File Loader: Data verification failed at address 0x80022FA0 Please verify target memory and memory map.
Error found during data verification.
Ensure the linker command file matches the memory map.

I verified that the linker command file is correct and matches the memory map.

I experimented with my program by adding and deleting code. These changes caused the location of the .cinit section (and other memory sections) to change. I noticed that the address reported in the "Data verification failed at address x " error message is always the starting address of the .cinit section.

What would cause this? It's really puzzling because I've been running the debugger for days without error, until today.

I'm loading all of my data and code into external DDR2 memory, which starts at address 0x80000000 on my board. I'm using a Spectrum Digital XDS510 USB emulator.

Thanks for your help,

Tim M

 

  • We have found an odd work around, which involves running an earlier project just testing our RAM chip then moving to another workspace to run a specific application.

    However, on a cold start of Ethernet Bios project we get the issue. For this project I am trying to write an Ethernet driver for our DM6437 custom board yet we still get the same error... I've looked at other issues to delete the debug interface (didn't work), or to compare the memory map to the linker cfg file however it all seems to be alright(?).

    My next idea might be that the our XDC configuration file might be wrong but copying a "working" copy (one that doesn't have the constant error of verification during loading) I still come up with the same issue. And as stated before it's always at the ".cinit" section.

    Again for the above issue it works with no flaw over and over, however when trying to copy the same project into another workspace when we run the debug the same issue occurs. Could it be the *.cfg file or the port map file? But in the end the *.map file seems to be right?

    Any help would be grateful and if one needs any extra information let us know.

    Thank you in advance,

    -Jim

  • In my experience, this error is exactly what it sounds like.  When the debugger loads memory, it tries to verify a proper load by reading the contents back.  If they don't match, you get that error.

    I have seen it at load when I forgot to add the gel file (which sets up all the ddr2 registers prior to load) or when my memory changed and I forgot to modify the gel file.  Could be that your earlier project has that gel file attached and it properly prepares the ddr2 registers, allowing your second project to succeed.  My 2 cents.

  • Hey Matt,

    Thanks a lot for that, it got rid of that issue for my project.

    However, it is still a little weird  that my coworkers project doesn't use the gel file and doesn't run into this program. We will dig into this problem when we have time but just want to say thank you for allowing us to move on a little faster

    Thank you,

    -Jim