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.

TMS570LS1114: SRAM 1BIT ECC problem

Part Number: TMS570LS1114

I have asked the difference between 1BIT ECC of Flash and 1BIT ECC of Sram on E2E before. Due to the characteristics of Flash itself, the corrected data cannot be written to Flash, that is, the data on the original Flash address cannot be corrected and written, but the data corrected by Sram is automatically written. The message in the following picture is returned.

However, during the test, I modified the data on the ECC address and then read the corresponding SRAM data, which triggered the 1BIT ECC fault. However, the ECC check code on the ECC address was not corrected, and the previous wrong ECC code was still kept. At this time, when the SRAM data was triggered to read, the 1BIT ECC fault was not triggered. That is, the ECC check code is corrected, but why I see the memory data is still wrong, as shown in the picture below;

Why is the value of the ECC check code on the memory address displayed as ????

Only when the SRAM data is rewritten, the ECC check code on the corresponding address will be updated to the correct value, as shown in the figure below. Therefore, I have a question about how to correct the ECC of SRAM.

  • My question is, if the ECC check code is incorrect, will the CPU correct the value of the ECC check code when it detects a 1BIT ECC fault?

    If the SRAM data has 1BIT ECC failure, how to correct the error?

    Can the CPU distinguish between data errors and ECC code errors?

  • The SRAM is protected by ECC allowing the CPU to correct any single-bit errors and detect double-bit errors within a 64-bit value. Each RAM data word is 64 bits wide, and ECC data is 8-bit wide.

    Any 1-bit error in 64-bit data or 8-bit ECC, reading the 64-bit data from SRAM will correct the corrupted data or corrupted ECC value and save the corrected value to memory.