Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
For PSoC5 it is possible to include the EEPROM in the programming (hex and cyacd) files by selecting the "Include EEPROM image in Hex file" but this is an all or nothing selection.
I would like to instead only include half of the EERPOM in the programming files, I use the half included to store serial data that gets programmed during in system update, but the other half is used by the application for logging, and I do not want this data to get overwritten during an in system update.
Is there a way to do this in the tool? It looks like no.
If no, what would be the reccomended way to accomplish this, the two things I can think of are:
1) Manually (or using a script) remove the EEPROM rows from the hex/cyacd that I do not want programmed
2) Write the bootloader program to make the EEPROM application rows write protected through the in system update interface.
I am thinking option 1 might be the best if I can have a script that automatically edits the hex and cyacd during the build process to remove these rows. Any guidance is appreciated.
To access only half of the EEPROM in the linker script you can set 1024 bytes offset for the EEPROM and check whether writing to flash will erase the entire EEPROM or only half of it. Please check this and update.
So the idea here is that by changing the offset in the linker, it will only apply the EEPROM contents for the top half of the EEPROM when it generates the hex file? I don't understand your comment of writing and erasing to flash erasing the entire EEPROM.
Flash and EEPROM are separate spaces in this devices, and with the linker change it shouldn't impact access to the EEPROM it would just impact the creation of the hex correct? Or are you saying that this will also impact the programmer so it doesn't touch the EEPROM not listed in the hex?