You are here

MultiApp bootloader | Cypress Semiconductor

MultiApp bootloader

Summary: 3 Replies, Latest post by HIMA on 29 Mar 2015 07:32 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
user_228878049's picture
152 posts

I had initially posted requesting for info on MultiApp bootloader, but the post wasn't successful. 

Is there any documentation on how to use MultiApp bootloader which can be of use..

srim's picture
Cypress Employee
111 posts

The multi-App Bootloader allows users to place two images in the flash.The typical reason for having this option is that if a bootload operation fails for one Bootloadable project, or that Bootloadable project becomes corrupted for some other reason, then the other Bootloadable project can still be executed. This ensures that there is always a valid application image residing in flash. With this feature, you can place two images of the same project or place two different applications altogether.

With the "dual mode" option the second Bootloadable project shall occupy flash starting at the row that is halfway between the start of the first Bootloadable project and the end of flash. This limits the flash size of multi-app Bootlodable to half of that of a normal Bootloadable project.

Whenever a Bootloadable project having a dependency to a Multi-app Bootloader project is built, two CYACD files are created with suffixes *_1.cyacd and *_2.cyacd. The former will always occupy the initial half of the Bootloadable flash area and the later the remaining half.


Steps to switch between applications

Let us assume that there are two Bootloadable projects: 1) Project_A and 2) Project_B

When these are built with a dependency to a MABL, two cyacd files are generated for each project:

Project_A_1.cyacd and Project_A_2.cyacd

Project_B_1.cyacd and Project_B_2.cyacd

The *_1.cyacd file will always occupy first half of the flash and *_2.cyacd will occupy second half. An application set as active and running cannot be overwritten. The following demonstrates the commands used in (BCP)  to switch application.

Switching from application_1 to application_2

w 08 01 36 01 00 01 c7 ff 17

r 08 x x x x x x x

Switching from application_2 to application_1

w 08 01 36 01 00 00 c8 ff 17

r 08 x x x x x x x


08 – Bootloader I2C slave address

01 - Bootloader packet start

36 – Set active application command

01 00 – Number of bytes to follow (Lower byte first)

00 – Set image #1 as active

C8FF – Basic Summation checksum (FFFF-(01+36+01+00+00)+01)

17 – Packet End


The other details can be found in the Bootloader datasheet. Let me know if you need more info on this.




kingvittu's picture
7 posts


Is there a way to switch between two bootloadable programs without using a debugger/programmer?

I'm trying to load two different programs in flash and select between them by changing a DIP switch position using multi-app bootloader.

The reason for avoiding the use of MiniProg3 or the like is to enable "post-PCB reconfiguration" at a flip of a switch. 

Thanks and regards,


HIMA's picture
Cypress Employee
169 posts



There is no option for that from the PSoC Programmer. You can design your bootloader in such a way that the Active Application in the metadata is written by the bootloader based on the DIP switch status.




Log in to post new comments.