Other Parts Discussed in Thread: TMS5700332, UNIFLASH
Hello,
We have a system that uses the TMS570LS3137 and the TMS5700332. For both we have ECC enabled and to be calculated by the linker (will be part of the output intel HEX files). We've used similar configurations for previous systems with no issues. We are using TI compiler tool chain v20.2.1 LTS.
For this system we've been getting intermittent errors when flashing the TMS570LS3137 using Code Composer or Uniflash (via CLI). We do not get errors on the other processor. On Code Composer the error looks like this:
From the address in the error is is evident that the error is in the ECC sections of memory.
While debugging the error we tried changing VFILL to FILL in the linker file for the flash memory sections. We noticed that when using FILL the error didn't occur. Using FILL is less convenient as it results in a much larger HEX file size that will be more time consuming to flash. We compared the HEX files produced with using VFILL and FILL and noticed that there was a difference on the ECC calculated, which I think is incorrect.
This is a screenshot of the ECC codes for a specific section of memory (note that this screenshot is for a different binary from the one used to get the CCS screenshot):
The following is a screenshot of the flash data for that ECC:
On the data side, it seems that when using VFILL zeroes are used for empty memory. When using FILL, FF is used instead. This doesn't seem to be the reason for the ECC difference as the other ECC codes do match.
What could cause a difference in the ECC calculated using FILL vs VFILL?
We cannot share our source code as it's property of our customer. We tried setting up a simplified code base but we couldn't reproduce the error there.
Thanks,
Jose Lopez