if i am not wrong a "backup" folder is created when a project is updated.
you may open the project from the backup folder. care should be taken not to update the components. some of the components may not function without updating the cyboot to the latest version.
OK, downgrade is really important, because as soon as the software is upgraded once, every time I start a new project it automatically starts with cy_boot 2.21. I couldn't find a way to go around this. And since I am using PSoC 3 and PSoC 5 on some projects I need to keep my software up to date.
The posting have been here for quite a long time without any comment or answer from Cypress employees, which brings me to the point, that this can't be resolved by them. Long time ago (when I first noticed the issue) I asked about this issue and since there have been no updates to resolve that, I assume, that I have to figure out this by myself.
I couldn't find any documents regarding what exactly is messed up in the code, when using 2.21, I only figured out so far that 'sprintf' function is not working correctly with floats without anything - warning at least, to indicate this.
I have figured out how to "cheat" the compiler, to use the old version of cy_boot, instead of the new one. So far it is working fine.
I opened project file 'project.cyprj' with notepad and on the bottom of the file there is a line:
<boot_component v="cy_boot_v2_21" />
I changed it to:
<boot_component v="cy_boot_v2_20" />
You can change the version to what suits you.
I haven't test this throughly, but it seems to work fine so far.
Please go through the following KB article-
This will help you regarding your problem of sprintf and also to downgrade the cy_boot component version.
There is clean way explain in the KB.