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.

[Concerto F28M35H52C1] Load Program Failed: Data Verification Error occurred

Other Parts Discussed in Thread: UNIFLASH

Hello dear e2e-Community,

I have a strange problem with the loading of a binary into my controller. (Code Composer Studio v. 6.1, Windows 7)

A little bit of background information: We have started to build frequency inverters some years ago for motor control with the Concerto ControlCard and a custom base board which interfaces to the power electronics, measurements etc. Everything works fine there, we have created our programs in C, everything is tested.

Some day, we decided to break away from this ControlCard-solution and to integrate the Concerto-Chip directly onto our base board. In the end, this worked too, and the same programs run on the new, integrated design.

Now - and here comes the problem - we have changed our custom design a little bit, but the part concerning the Concerto-Chip was just copy-and-paste. I can connect the Debugger in Code Composer Studio to the two cores of the controller, but as soon as I want to load a program into the Controller (the same program as before!), I get the error message: "A data verification error occured, file load failed." This comes immediately after choosing the file to load.

How can this be? The Code Composer Installation is the same as before, so this can't really be the problem, I guess. The debugger (XDS100) and the target configuration file are also the same.

Can someone help me out there? Thanks a lot in advance.

Best regards,

Philipp

  • Hi Philipp,

    Error is only about data verification or there is more text? It'll be great if you could copy full error message here. Also error you are getting on M3 side or C28x side?

    Regards,

    Vivek Singh

  • Hello,

    thanks for your quick reply.

    Here is the console output, when trying to load the m3 core:

    Cortex_M3_0: GEL Output: Memory Map Initialization Complete

    Cortex_M3_0: GEL Output: Watchdog Timers Enabled

    Cortex_M3_0: GEL Output: UARTs Enabled

    C28xx_0: GEL Output:

    Memory Map Initialization Complete

    C28xx_0: GEL Output:

    RAM Initialization Complete

    Cortex_M3_0: 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.

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

    Cortex_M3_0: GEL: File: E:\...\blinky_dc_m3.out: a data verification error occurred, file load failed.



    And when trying to load the c28 core:

    C28xx_0: 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.

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

    C28xx_0: GEL: File: E:\...\blinky_dc_c28.out: a data verification error occurred, file load failed.



    Do you have any idea? We already tried an older CCS version, and another board - the error persists ..

    Thanks,

    Philipp
  • Hello everybody,

    here, I also have the error message as a screenshot:

    Does anyone have an idea about what is going wrong here? Thanks a lot!

    Best Regards,

    Philipp

  • Hi Philipp,

    Instead of loading the code into CCS, could you check the value at address locations 0x200000 to 0x200030 and 0x27FFF0 to 0x27FFD0 via CCS memory browser window on M3 and let us know these values.

    Regards,

    Vivek Singh
  • Hey Vivek,

    here, I have two Screenshots for you concerning the memory contents:

    I think this looks quite normal - the chip is absolutely empty, nothing has been flashed in there before, it's factory-new.

    But - I have discovered something else. Strange things. When using another laptop, loading code into the controller works like a charm. This other laptop has the same CCS version, and I tried to think about any differences - I could not think of any.

    Then I tried using Uniflash (v4) to load the program into the controller, using the first laptop again. Here, I could load the code on both cores, using the same ccxml-File and the same out-Files as before. Afterwards, I was able to load the m3-core with CCS (which did not work before at all), but I still could not load the c28 with CCS (with Uniflash, it worked). But I still can't really debug, as I could only load m3.

    What happens here? Why is this so unpredictable? How can I explain this to customers?

    Thanks a lot for your support!

    Best regards, 

    Philipp

  • Philipp,

    We suggest user to use Wait-In_Reset Mode to program the fresh device. This is done by driving EMU0/EMU1 pins with value 0/1. Can you try the same and see if that helps.

    Regards,

    Vivek Singh
  • Hello Vivek,

    We solved the problem. On our new boards, we have the Revision E of the Concerto-Controller, before we always had Revision B. (We did not really realize this until now..)

    It seems that something has changed from RevE to RevB, so that the Debugger-Tool-Chain of Code Composer V.6.1 is too old and not able to flash binaries into the controller. This explains why it worked with Uniflash (newest version) but not with CCS v6.1 while using the same laptop computer.

    Using a newer CCS version (e.g. 6.2) everything works fine.

    Is there some overview what else has changed from RevB to RevE? 

    Best regards,

    Philipp