The STM32 ARM Cortex family comprises an array of microcontrollers with different capabilities.
The STM32F4 family is very popular and has an inbuilt bootloader where you can flash a new program code over a USB connection.
This is called “Device Firmware Upgrade” or DFU. There seemed to be a lot of confusion online on how to write the embedded firmware to
implement USB DFU when you wish to jump to the bootloader from your application code.
I made this video to explain how I did this.
I have also provide full source code on GitHub/microready