1.6 USB Device HID Bootloader

The USB Device HID bootloader Library can be used to upgrade firmware on a target device without the need for an external programmer or debugger.

Features

  • Supported on CORTEX-M and MIPS based MCUs

  • Uses Harmony 3 USB Device HID driver to communicate

  • Supports Live update

  • Takes Normalized Hex File as input

  • Uses Unified Host application to receive the hex file from Host PC

USB Device HID Bootloader Block Diagram

usb_bootloader_block_diagram

The Bootloader framework is divided into 2 sub-systems

  • Bootloader Task:

    • Erases the Flash memory

    • Programs the hex file records into Flash memory

    • Computes a CRC check of the Application in Program Memory

    • Jumps to the Application

    • Calls the DataStream Task at end of its every state machine execution

    • This Task routine takes an interface-agnostic approach to the actual communication medium

    • Runs in Cooperative mode with other tasks in the system

  • Datastream Task:

    • This Task implements the USB Device HID communication interface to the receive the hex file from the Unified Host Application running on Host PC

    • This Task is called from Bootloader Task routine