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.
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
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.ziphe 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,
ok, What is the exact command used for the generation?
Thanks and regards,
Vamsi
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
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