Using the Emulated EEPROM Component in a Bootloadable Project - KBA89149 | Cypress Semiconductor
Support & Community
Using the Emulated EEPROM Component in a Bootloadable Project - KBA89149
When you use the Emulated EEPROM Component in a bootloadable project, PSoC® gets stuck in the bootloader code on subsequent power on or reset. What is the reason for this? Is there a workaround for this issue?
The Emulated EEPROM Component emulates an EEPROM device in the flash memory of PSoC, providing simplified access to nonvolatile memory. You can use this Component to update flash in the bootloadable project.
When PSoC 3, PSoC 4 or PSoC 5LP boots up, the bootloader code tests the checksum of the bootloadable code. If the checksum does not match the stored value corresponding to the original download of the bootloadable project, the bootloader does not transfer control to the bootloadable project. Because the Emulated EEPROM Component can update flash, the bootloadable project checksum may no longer match and the bootloadable project does not execute.
To work around this, you can use the following feature available in PSoC Creator™. In the project, double-click the Bootloader Component configuration window and select the check box called Fast bootloadable application validation. When this parameter is enabled, the bootloader calculates the flash checksum only once when the new bootloadable code (application code) is downloaded. Then, a nonvolatile flag is set to indicate that the checksum matches, so that the bootloader does not compute the checksum on further resets. This gives the application code the freedom to update the flash using Emulated EEPROM.
Figure 1. Bootloader Component Configuration Window