1.2 UART Fail Safe Bootloader

This example application shows how to use the Bootloader Library to bootload an application on device having dual Flash bank feature using UART protocol.

Bootloader Application

  • This is a fail safe bootloader application which resides from:
    • The starting location of both the banks of device Flash memory region for SAM devices with dual bank support
    • The starting location of the BFM region for PIC32M devices with dual bank support
  • It uses the Virtual Com port of the device (EDBG port or External USB to UART converters) to receive application binary from host PC
  • It calls the bootloader_Tasks() function which receives application to be programmed into opposite bank of Flash memory over UART channel
  • Trigger methods:
    • It uses the On board Switch as bootloader trigger pin to force enter the bootloader at reset of device
    • It checks for bootloader request pattern (0x5048434D) from the starting 16 Bytes of RAM to force enter bootloader at reset of device

Test Application

  • This is a test application which resides from:
    • The end of bootloader size in device Flash memory for SAM devices with dual bank support
    • The start of PFM for PIC32MZ, PIC32MK devices with dual bank support
      • The last ROW of each bank is reserved for storing the serial number which is updated by bootloader after every firmware upgrade
  • It will be loaded into Flash memory by bootloader application
  • It blinks an LED and provides console output
  • It uses the On board Switch to trigger the bootloader from firmware (May not be supported on all devices)
    • Once the switch is pressed it loads first 16 bytes of RAM with bootloader request pattern (0x5048434D) and resets the device