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.

TMS320F28388D: Uniflash message: File Loader: Verification failed: Values at address 0x200000@Program do not match Please verify target and memory map

Part Number: TMS320F28388D
Other Parts Discussed in Thread: UNIFLASH,

Hi,
I am struggling with the verification hex file issue in UniFlash (ver.8.4.0.4458) for Arm core (TMS320F28388D)

Description:
- In CCS there is no error after compilation, the program can be downloaded and is started properly.
- In UniFlash after .hex file verification I get the message: "File Loader: Verification failed: Values at address 0x200000@Program do not match Please verify target and memory map". Nevertheless the program can be downloded but doesn't start.
When I make the verification for .out file I have the same message but I can also download and the program is started properly.

I have attached:
- a snapshot from UniFlash
- a debug folder with .hex and .out file


0312.Debug.zip

  • Hi Sebastian,

    1) Did you program any DCSM security settings in the OTP on this device previously?  Please check your linker command file/map file to see if anything is mapped to the DCSM USER OTP.

    2) If not standalone verify, does full erase and program load work fine without verify errors?

    Thanks and regards,
    Vamsi

  • More details below:

     - Arm project is set to: rom with = 16, memory width = 16.

     - Contents of the image flashed by uniflash is not equal to .hex file

    hex file:                            F000 BAD6 4770 0000
    uniflash view:                   D6BA 00F0 0000 7047
    memory map view:           00F0 D6BA 7047 0000 

    It seems like the uniflash is changing the bytes order.

    fsbl_cpu3.zip
     he order of bytes.

  • Hi Sebestian,

    Hex-file is showing 16-bit data.  Uniflash view is showing 32-bit data.  Hence, both are same.

    What do you mean by memory map view?  

    Thanks and regards,
    Vamsi

  • Hi, 

    In my opinion there is a conversion :Big Endian <-> Little Endian and additionaly Mid Big Endian <-> Mid Little Endian.

    1a_out16.jpg and 1b_out16.jpg shows .out file which was used to flash memory.

    As you can see .hex file is the same as in Memory Browser (ccs side) - F000 BAD6 4770 0000  the same order of bytes. 

    2a_out16.jpg and 2b_out16.jpg shows .hex file which was used to flash memory.

    As you can see .hex file is not the same as in Memory Browser (ccs side) - F000 BAD6 4770 0000 vs 00F0 D6BA 7047 0000

    Conclusion:

    - When I flash the memory using UniFlash with .out file then program after flashing and restarting  starts properly.

    - When I flash the memory using UniFlash with .hex file then program after flashing and restarting  doesn't start properly, because the order of bytes in the flashed memory is not the same as in .hex file: F000 BAD6 4770 0000 vs 00F0 D6BA 7047

     

  • Hi Sebastian,

    How did you generate the hex file?  

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    hex file is generated using tektronix format.

  • Hi Sebastian,

    ok, What is the exact command used for the generation?

    Thanks and regards,
    Vamsi

  • Hi,

    This is the command.

  • Hello,

    - In UniFlash after .hex file verification I get the message: "File Loader: Verification failed: Values at address 0x200000@Program do not match Please verify target and memory map". Nevertheless the program can be downloded but doesn't start.
    When I make the verification for .out file I have the same message but I can also download and the program is started properly.

    Carefully check your screenshot. You have the C28xx CPU1 selected. You are flashing to C28xx and NOT the M4.

    As for the discrepancy between the hex and out file, yes I see the differences in the memory browser view. I see the same behavior in UniFlash and CCS. My guess is that the hex file is not being generated correctly. I will bring this thread to the attention of the compiler experts for further investigation.

    Thanks

    ki 

  • Carefully check your screenshot. You have the C28xx CPU1 selected. You are flashing to C28xx and NOT the M4.

    To clarify:

  • Hi Sebastian,

    Did you check Ki's suggestion on selecting the correct core to program the image?

    Thanks and regards,

    Vamsi

  • Hi,

    It seems that problem was in generating .hex file in the tektronix format. Uniflash works properly, bytes are not swapped. Thank you for your support.

  • Hi Sebastian,

    Thank you for the update. I am closing this post.  

    Regards,

    Vamsi