It can be caused by ECC error.
Just to note ECC event reporting on DATA flash accesses may be suppressed
(according to PFCR3[DERR_SUP]) and ECC-clean illegal opcode value 0x1555_1555 may be returned instead of it. But it is not enabled by default and reading of ECC fault affected data lead in bus error.
If data flash is used for EEPROM emulation, our EEPROM emulation is capable to handle it.
In general, multibit ECC error in flash can be caused by
- Unexpected reset or loosing power during flash erase or flash program operation
- Wear out of particular flash sector = number of program/erase cycles that device’s flash is capable to withstand is exceeded (in practice, real endurance is greater than specified minimum).
- Over-programming of particular flash area that is programming without erasing. It is basically software fault.
- Soft error (radiation, electro-magnetic interference, or electrical noise) during reading or executing from flash memory.