2025-12-28 8:27 PM
I am using the STM32U585RIT6 MCU with the B-U585I-IOT02A development kit. My primary focus is on USB, and in my project, I have enabled USB CDC-ACM, through which data and messages are transmitted over USB.
For this project, I need to enable firmware update support. I have been searching for a suitable example, but most available examples require manual interaction with the hardware—such as setting the BOOT0 pin high and resetting the board, or pressing a user button to jump to the bootloader and perform the firmware update via a programmer.
However, I do not want any physical interaction with the board. I need the firmware update to be triggered purely through software, perform the update, and reset the device without manually changing the BOOT0 pin or pressing any buttons.
Is this possible? If so, what are the steps that need to be followed, and are there any reference examples available for this approach?
2025-12-28 8:44 PM
Jump to the bootloader in software, do the update, and reset the chip.
Here is how to jump to the bootloader in software. Don't jump from within an interrupt.
How to jump to system bootloader from application ... - STMicroelectronics Community
You can obviously make your own custom bootloader as well, but it's a lot easier to use the built in USB DFU bootloader along with STM32CubeProgrammer CLI.