On device reset, the bootloader can wait for a command from the bootloader host specified by the wait time. When you want to skip the wait time; validate the available bootloadable application, upon success schedule the bootloadable image and perform a software reset. The appended code monitors a Pin to switch between bootloader and bootloadable. Similarly, you may monitor the I2C channel for a user command.
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
/* Start bootloader communication. This will wait for bootloading as configured by Wait for command*/
/* Validate and schedule bootloadable. Perform software reset*/
if(CYRET_SUCCESS == Bootloader_ValidateBootloadable(Bootloader_activeApp))
/* Place your application code here. */