2 Description

Bootloader Framework

The MPLAB Harmony v3 bootloader framework is divided into the following sub tasks:

  • Communication Task
  • Command Processing Task
  • Programming Task
Figure 2-1. Harmony v3 Bootloader Framework

Communication Task

This task is responsible for receiving data from the host PC or embedded host through the selected communication interface in polling mode. It validates the incoming packet from the host with the expected header information before passing it to the command processing task.

Command Processing Task

This task processes the commands received from communication task and acts upon it, providing the response back to the host PC accordingly. If the command received is a program command, then it gives control to the programming task.

Programming Task

This task is responsible to program the internal Flash memory with a data packet received. It uses the Non-Volatile Memory (NVM) peripheral library to perform the unlock, erase, or write operations. It invokes the communication task in parallel to receive the next packet while waiting for the Flash operation to complete.

Flow Chart

The firmware upgrade execution flowchart is shown in the following figure.
Figure 2-2. Bootloader Framework Execution Flowchart