Microchip logo
  • All
  • Products
  • Documents
  • Applications Notes

Microchip Easy Bootloader Library

Microchip Easy Bootloader (EZBL) Library


Note: For new designs that do not need Live Update feature support, please use the latest 16-bit Bootloader for PIC24 MCUs and dsPIC33 DSCs supported in Microchip Code Configurator (MCC).


The Microchip Easy Bootloader Library or EZBL for short, is a library of software building blocks and example projects facilitating creation of Bootloaders and compatible Applications. All 32-bit PIC32MM devices and nearly all 16-bit target PIC® MCU and dsPIC® DSC processors are supported with multiple communications protocols and bootloading topologies. Using a pre-compiled API archive and build-time automation tools, numerous manual code development scenarios and bootloader restrictions are eliminated as compared to historical bootloader App Notes and Code Examples. EZBL brings code sharing and advanced feature sets not previously feasible with manually developed bootloader projects.



EZBL Features

Targets supported

• Single and Dual Partition bootloading topology examples on Dual Partition capable targets

• Common code set supports all 32-bit PIC32MM and 16-bit PIC24/dsPIC33 devices, excluding PIC24F[V]xxKxx families

• Dual Partition with Live Update for time and state sensitive application continuity


Code reuse

• Transparent Bootloader function, ISR and variable access from executing Application

• Existing code can be integrated into a Bootloader or Application project without significant changes

• File-oriented push/pull and onboard-memory bootloaders ready to use - can be adapted to Over The Air (OTA) and chip-to-chip designs


Automatic linker script creation

• No .gld/.ld file maintenance or understanding of GNU ld syntax required

Decoupled communications

• 2-wire UART and I2C Slave protocols exampled

• USB Mass Storage thumb drive bootloading (USB Host/MSD Class)

• Passive, self-recognizing protocol scalable to multi-node broadcast oriented communications buses

• Multiple peripheral instances and peripheral types can simultaneously listen for firmware updates

• Partitioned to facilitate customer and 3rd party protocol additions


Robust self-preservation

• Flash erase/write routines self-aware of Bootloader geometry

• Bootloader will not erase or corrupt itself when externally given destructive commands

• Will not attempt to execute a corrupt or partially bootloaded Application

• CRC32 communications and image integrity checking with reusable API


Interrupt vector management

• IVT entries forwarded to optimized Interrupt Goto Table in Application space

• Bootloader and Application can share any Interrupt Vector with individual run-time selection

• No AIVT or Boot Segment (BS) hardware support required


Application support functionality

• Optimized general purpose 64-bit time measurement and task scheduling API

• Flash Erase/Write APIs for data EEPROM emulation and content survival independent of application upgrades

• Multi-instance FIFO buffering API with interrupt/non-blocking, polled, timeout and callback notification functions


Designed for performance without hardware luxuries

• Latency adaptive software flow control tolerates Bluetooth or TCP/Internet propagation delays without hardware RTS/CTS or sideband signaling

• .hex contents automatically converted at build time to smaller binary .bl2 image with improved identification, version and error detection features

• Software FIFOs on Bootloader communications interrupts permit high throughput


Code secrecy compatible

• Operation unaffected by ICSP Code Protect

• Bootloader does not expose program memory or RAM for external read back

• External program verification/version identification facilitated by internal CRC32 computation


Full source with no-cost Microchip license

• No GNU GPL code contamination or 3rd party code requiring independent licensing

• Script-accessible, portable C PC command line communications executable ready for branded GUI wrapping and redistribution





KB Size
Updated as of
EZBL Release Notes