Dynamically Jump Between PSoC 4 Bootloader and Bootloadable Application – KBA228337

Author: RyanZ_36          Version: **


Sometimes, your custom bootloader project may need to dynamically jump from the bootloader program to the bootloadable application program or the other way around.

The following functions help you on this:




void Bootloader_Exit (uint8 appId)


The application to be started:

- Bootloader_EXIT_TO_BTLDR - The Bootloader application will be started on a software reset.

- Bootloader_EXIT_TO_BTLDB;

- Bootloader_EXIT_TO_BTLDB_1 - Bootloadable application # 1 will be started on a software reset.

- Bootloader_EXIT_TO_BTLDB_2 - Bootloadable application # 2 will be started on a software reset. Available only if the "Dual-application" option is enabled in the Component customizer.

The function schedules the specified application and performs a software reset to launch a specified application.

If the specified application is not valid, it will launch the bootloader program again.

void Bootloadable_Load (void)


The function schedules the Bootloader/Launcher to be launched and then performs a software reset to launch it.

For example, in dual-bootloadable application, use an external GPIO to launch the specified bootloadable application from bootloader. This code is the interrupt handler of a timer. When an interrupt happens, the code checks the GPIO status and goes to the specified bootloadable application.






    if(Trigger_BTLDR_To_APP1_Read() != 0u)



    if(Trigger_BTLDR_To_APP2_Read() != 0u)



For more details about the jump procedure between bootloader and bootloadable, read reference document below.