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

cross mob

Dynamically Jump Between PSoC 4 Bootloader and Bootloadable Application – KBA228337

Dynamically Jump Between PSoC 4 Bootloader and Bootloadable Application – KBA228337

ChaitanyaV_61
Employee
Employee
50 questions asked 25 likes received 25 sign-ins

Author: RyanZ_36          Version: **

Translation - Japanese: PSoC 4 ブートローダーとブートロード可能なアプリケーション間の動的遷移 - Community Translated (JA)

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:

Function

Parameter

Description

void Bootloader_Exit (uint8 appId)

appld

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.

CY_ISR(timer_ISR)

{

      Timer_ClearInterrupt(Timer_INTR_MASK_TC);

    if(Trigger_BTLDR_To_APP1_Read() != 0u)

    {Bootloader_Exit(Bootloader_EXIT_TO_BTLDB_1);}

   

    if(Trigger_BTLDR_To_APP2_Read() != 0u)

    {Bootloader_Exit(Bootloader_EXIT_TO_BTLDB_2);}  

}

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

537 Views
Contributors