Using Emulated EEPROM Component in Bootloadable Project | Cypress Semiconductor
Using Emulated EEPROM Component in Bootloadable Project
When I use Emulated EEPROM Component in my Bootloadable Project, I find that PSoC gets stuck in the Bootloader Code on subsequent power-up or reset. What is the reason for this? Is there a work-around for this issue?
The Emulated EEPROM component emulates an EEPROM device in the flash memory of a PSoC, providing simplified access to non-volatile memory. So we can use this component to update flash in the Bootloadable project.
Every time PSoC 3 or PSoC 5LPboots up, the Bootloader code checks the checksum of the whole Bootloadable code and if the checksum does not match the already stored value corresponding to the original Bootloadable project, it does not load the modified Bootloadable project. Since the Emulated EEPROM Component can update flash, this issue will be applicable here as well.
To work around this, we can use the following feature available in PSoC Creator. In the Bootloader project, double-click on the Bootloader component configuration window and select the check box called ‘Fast Application Verification’. When this parameter is enabled, then Bootloader calculates flash checksum only once when the new Bootloadable code (application code) is downloaded. Then, one nonvolatile flag is set to indicate that the checksum matches and the Bootloader does not compute the checksum on further Resets. This gives the application code the freedom to update the flash using Emulated EEPROM.