Hi @Simon-Liu,
If the 64bit double word is programmed, its ECC check sum is calculated and flashed along with the double word. That mean that the bits of the check sum change from 1 to 0.
The controller can then correct single-bit errors and detect double-bit errors in the record. But it cannot reliably detect 3-bit errors etc.

If the double word is reprogrammed (other bits change from 1 to 0 in the record), again its check sum is calculated and flashed (other bits of the checksum may change from 1 to 0)
So, the resulting double word record is:
1st record AND 2nd record.
The resulting ECC checksum is:
1st check sum AND 2nd check sum.
If could be that the 8bit resulting checksum matches the resulting record accidently.
Or this 8bit error that you inject if evaluated as a single-bit error, and the result get corrected.
Regards,
Daniel