Jump to main content

# 1.1.3 UART Bootloader Configurations

For MCUs:

Bootloader Specific User Configurations

For Cortex-M based MCUs

For MIPS based MCUs

- Bootloader Peripheral Used:

  - Specifies the communication peripheral used by bootloader to receive the application
  - The name of the peripheral will vary from device to device

- 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:

  - 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 Safe Flash Update:

  - Used to configure bootloader to use Dual banks of device to upload the application
  - This option is visible only for devices supporting Dual Flash banks

Bootloader System Configurations

- 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

Note:

- For optimizing the code Bootloader component disables generation of default interrupt and exception files as shown below

- Enabling these interrupts explicitly may still not work as bootloader uses custom startup file which has its own Interrupt table populating only the reset handler

For MPUs:

Bootloader Specific User Configurations

Bootloader with SD/eMMC media

Bootloader with Serial Flash media

Bootloader with NAND Flash media

- Bootloader Peripheral Used:

  - Specifies the communication peripheral used by bootloader to receive the application
  - The name of the peripheral will vary from device to device

- Application Binary Image Path:

  - Application binary image name harmony.bin (by default)

- Application Start Address (Hex):

  - Start address of the application on which bootloader will load and execute application
  - This value will be used by bootloader to load and jump to application at device reset

- Bootloader Memory Used (For Serial/NAND Flash):

  - Specifies the Flash Driver used by bootloader to receive the application
  - The name of the Flash Driver will vary from device to device

- External Memory App Image Address (Hex) (For Serial/NAND Flash):

  - External Memory App Image Address (0x00200000) on which bootloader will program the application image
  - This value will also be used by bootloader to load the application from external memory to the DDR memory and execute it.

- External Memory Metadata Address (Hex) (For Serial/NAND Flash):

  - External Memory Metadata Address (0x00180000) on which bootloader will program the size of application binary
  - This value will be used by bootloader to read the application image from external memory

MPLAB X Settings (For MPUs)

- Specifying post build option to automatically generate the Harmony 3 bootloader binary file from ELF file once the build is complete

      ${MP_CC_DIR}/xc32-objcopy -Obinary ${ImageDir}/${ConfName}.X.${IMAGE_TYPE}.elf ${ImageDir}/harmony_bootloader.bin

Rev: G