1.6.3 USB Device HID Bootloader Configurations

Bootloader Specific User Configurations

For Basic Bootloader

images/usb_bootloader_mcc_config_basic

For Live Update Bootloader

usb_bootloader_mcc_config_live_update
  • Bootloader NVM Memory Used:

    • Specifies the memory peripheral used by bootloader to perform flash operations

    • The name of the peripheral will vary from device to device

  • Bootloader Size (Bytes):

    • Specifies the maximum size of flash required by the bootloader

    • This size is calculated based on Bootloader type and Memory used

    • This size will vary from device to device and should always be aligned to device erase unit size

  • Enable Bootloader Trigger From Firmware: (Basic Mode Only)

    • This Option can be used to Force Trigger bootloader from application firmware after a soft reset. It does so by reserving the specified number of bytes in SRAM from the start of the RAM. The reserved memory is updated by the application with a pre-defined pattern. The bootloader firmware in the bootloader_Trigger() routine, can check the reserved memory for the pre-defined pattern and enter bootloader mode if the pattern matches.

    • Number Of Bytes To Reserve From Start Of RAM:

      • This option adds the provided offset to RAM Start address in bootloader linker script.

      • Application firmware can store some pattern in the reserved bytes region from RAM start for bootloader to check at reset in bootloader_Trigger() function

  • Use Dual Bank For Live Update:

    • Used to configure bootloader library to use Inactive bank of the device to upload the new application

    • This option is visible only for devices supporting Dual flash banks

    • Live Update Flash Bank Size (Bytes):

      • Specifies the size of bank in which both the bootloader and application code reside. Thisvalue by default will be half of the available Flash memory

    • Trigger Reset After Update:

      • This option can be used to trigger a Swap bank and reset immediatly after programming the application in inactive bank.

      • If not enabled, then the application code should call the bootloader_SwapAndReset() function to trigger Swap bank and reset

USB Device HID Driver Configurations

usb_bootloader_mcc_config_usb_driver
  • Vendor ID: 0x04D8

  • Product Id Selection: usb_device_hid_bootloader

  • Product ID: 0x003C

    • To be used to configure Unified Host Application

  • Product String Selection: USB HID Bootloader

Bootloader System Configurations (Basic Mode Only)

usb_bootloader_mcc_config_basic_system
  • Application Start Address (Hex):

    • Start address of the application which will programmed by bootloader

    • This value is filled by bootloader when its loaded which is equal to the bootloader size. It can be modified as per user need

    • This value will be used by bootloader to Jump to application at device reset

Bootloader Linker Pre Processor Macros for CORTEX-M based MCUs

  • Based on the configurations the above linker pre processor macros will be generated in MPLAB X xc32-ld settings

    • ROM_LENGTH specifies the size of the bootloader

Basic Mode

usb_bootloader_basic_linker_setting

Live Update Mode

usb_bootloader_live_update_linker_setting