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

I

Improved memory management

I

Enhanced bootloader for larger firmware

I

I2C-controlled firmware-switch

I

Upgraded error handling for reliability

I

Eliminate random hangs

| Engibrains’ Contribution

Segments We Worked On

Firmware

  • 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.

QA

  • Bootloader automation for testing
  • Comprehensive scenario testing

| Technologies Used

Our Tech Stack will reduce your risk

Language

  • Embedded C

Platform OS

  • Arm® Cortex®-M0+ MCU

Tools

  • MCUxpresso

| Let’s Talk About Your Project

We will get back to you within 2 working days!