Case Study: Bootloader customization of Arm® Cortex®-M0+ MCU

The default secondary bootloader supports firmware upgrade over I2C. It has ability to auto switch between two firmware when the primary firmware failed to boot. The bootloader needs to be modified to support single firmware having larger memory footprint and to disable auto switch functionality.

arm cortex m0 min

Key Highlights


Improved memory management


Enhanced bootloader for larger firmware


I2C-controlled firmware-switch


Upgraded error handling for reliability


Eliminate random hangs

| Engibrains’ Contribution

Segments We Worked On


  • Customize the bootloader for single firmware having larger memory footprint.
  • Added support for switching between firmware and bootloader from the command over I2C instead of HW based manual mechanism.
  • Improve the error handling to propagate the error code till upper level so better decision can be taken and random hang issues avoided.


  • Bootloader automation for testing
  • Comprehensive scenario testing

| Technologies Used

Our Tech Stack will reduce your risk


  • Embedded C

Platform OS

  • Arm® Cortex®-M0+ MCU


  • MCUxpresso

| Let’s Talk About Your Project

We will get back to you within 2 working days!