cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

New Contributor

I have a project (attached, and slightly modified from one provided by GyanC_36), based on the BLE_OTA_FixedStack projects which uses dual-applications. That is, it has a bootloader, and two user applications. I can load the .hex onto the target device, and the device always boots into application 1.

My objective is to have the bootloader load whichever of the two applications in memory was compiled most recently. Perhaps something based on "__DATE__" and "__TIME__"? Perhaps more simply, I can have the bootloader read some external memory to determine the preferred boot application. Either way, how can I change the preferred boot application from within the bootloader?  This, of course, assumes both applications are valid. I still need the bootloader to select only valid applications.

A related question: how can I switch between active applications? How can I make an application inactive? The problem I'm running into is that I can OTA update using the application2 .cyacd file, but when I attempt using the application1 .cyacd file I get ""The bootloader reported error 'The application is currently marked as active and cannot be modified.'."

0 Likes
Reply
1 Solution
Employee

Please use Bootloader APIs to mark a particular application Active/Inactive based on some external / internal control process in your Bootloader Project. For Bootloader APIs - Go to Top Design -> Right Click on Bootloader Component -> Open DataSheet.

-Gyan

View solution in original post

1 Reply
Employee

Please use Bootloader APIs to mark a particular application Active/Inactive based on some external / internal control process in your Bootloader Project. For Bootloader APIs - Go to Top Design -> Right Click on Bootloader Component -> Open DataSheet.

-Gyan

View solution in original post