Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
adslc_1694516
Level 1
Level 1
Welcome! First question asked First reply posted

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
1 Solution
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

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
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

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