The Spark doco says: "The EEPROM emulator allocates 100 bytes of the Spark Core’s built-in flash memory to act as EEPROM. Unlike "true EEPROM, flash doesn’t suffer from write “wear”.
The write performance is great. And my program writes to EEPROM once in a blue moon. So I’m safe.
What about EEPROM “read” lifetime? My program reads from the same 35 bits of EEPROM once each second. Can anyone tell me the estimated lifetime of the EEPROM in terms of number of reads (so I can determine the lifetime of my the Core given my current program behaviour)?
@philipq, @scottm is partially right. Both EEPROM and Flash memory have unlimited READ cycles.
Both EEPROM and flash memory types have WRITE wear issues though. EEPROM, however, has a very high number of rated write cycles as to be considered unlimited. Flash, however, has a lower write cycle lifetime. This is why flash devices (eg. SD cards) use a “wear-levelling” technique to prevent single-cell wear, giving the device a much longer lifespan.
The Core emulates EEPROM by reserving 100bytes of flash memory. At the rate you are writing, wear is not an issue. However, if you were writing at much higher rates, wear would be a concern. The amazing @mdma created a library for the Core’s external flash memory (1 MB) that implements wear-levelling and extending the non-volatile storage a user has access to
But figures to consider are that manufacturers state a guaranteed minimum of I think 10K to 100K (see STM32F app note) and since @mdma has conjured up a wear leveling algorithm which will add several grades of magnitude to it, you should be safe to write once a minute for quite some time.
I would not go a lot higher in frequency if you are writing to EEPROM on a regular basis.