Simulated EEPROM 1 and 2

Simulated EEPROM 1 and 2 legacy storage.

The Simulated EEPROM 1 and 2 system (typically referred to as SimEE) is designed to operate under the Token Manager API and provide a non-volatile storage system. For this reason, the SimEE1 and SimEE2 components do not have any public functions to call.

SimEE is a legacy storage system so this component exists to enable the modern Token Manager to access existing devices that already have data stored in SimEE. Since the flash write cycles are finite, the Simulated EEPROM's primary purpose is to perform wear leveling across several hardware flash pages, ultimately increasing the number of times tokens may be written before a hardware failure.

SimEE1 is designed to consume 8kB of upper flash within which it will perform wear leveling. SimEE2 is designed to consume 36kB of upper flash within which it will perform wear leveling.

The Simulated EEPROM needs to periodically perform a page erase operation to recover storage area for future token writes. The page erase operation requires an ATOMIC block of typically 21ms. Since this is such a long time to not be able to service any interrupts, the page erase operation is under application control providing the application the opportunity to decide when to perform the operation and complete any special handling needed that might be needed.

The best, safest, and recommended practice is for the application to regularly and always perfom a page erase when the application can expect and deal with the page erase delay. Page erase will immediately return if there is nothing to erase. If there is something that needs to be erased, doing so as regularly and as soon as possible will keep the SimEE in the healthiest state possible.