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