Microchip Technology Inc

Microchip Easy Bootloader for PIC24 and dsPIC33

Microchip Easy Bootloader for PIC24 and dsPIC33

The Microchip Easy Bootloader for PIC24 and dsPIC33, or EZBL for short, is a library of software components and example projects designed to facilitate creation of Bootloaders and compatible Applications. It aims to simultaneously support a wide range of target PIC® MCU and dsPIC® DSC processors, minimize implementation effort/design time and maintain sufficient flexibility to accommodate many different communications protocols and bootloading topologies. Using build-time automation tools and efficient run-time heuristics, numerous manual code changes and bootloader restrictions are eliminated as compared to historical bootloader App Notes and Code Examples.


EZBL Features

Targets supported

• Common code set supports almost all PIC24 and dsPIC33 targets

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

• 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

• Push and Pull topology ready with minimal Application down-time or user interaction


Automatic linker script creation

• No .gld 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)

• 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


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

• 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 Java PC command line communications executable ready for branded GUI wrapping and redistribution





KB Size
Updated as of
EZBL Release Notes