1 Reply Latest reply on Oct 20, 2017 12:17 AM by GeonaP_26

    Dual-application Bootloader



      I am trying to figure out how to create a Dual-application Bootloader that allows my application code to get a new image from our server and store it in the 'other' image area on my CPU's flash then once verified by my application, jump to the bootloader to then switch to the new image. Then, the next time I get new code, I write it to the 'other' image area (that I was running out of before the last update) and once again, jump to the booloader and run the new image. Basically flipping back and forth when new code arrives. Do I have the correct idea here? If so, are there any examples of how to setup up the project(s) to do this? I am using a CY8C4248AZI-L475 as my CPU. My code size is <20k so there is plenty of flash to store 2 copies.


      One other note is my application is basically done and runs on its own. Can you easily make a standard project into a bootloader-bootloadable one?


      Hope somebody can steer me in the right direction. Thanks, in advance.

        • 1. Re: Dual-application Bootloader

          Helo Jeff,


          It is possible to jump to newly bootloaded image (either first or second) after successful bootloading. For this, please set the new image as active and perform bootloading. You can make use of steps outlined in section: Dual-Application Bootloader Considerations of Application Note AN73854.


          Yes, we can easily convert a s normal PSoC Creator project to bootloadable. Please drag and drop bootloadable component to your project. Later give dependency to appropriate booltoader which accepts and executes commands from communication interface. Converting a normal application project is elaborated in section: Converting a Normal Application Project to a Bootloadable Project of AN73854. For more details please make use of chapter 7: Add a Bootloader to Your PSoC Creator Project.



          Best Regards,

          Geona Mary

          Cypress Semiconductor

          1 of 1 people found this helpful