custom bootloaders are 3rd party developed
back in the 'old days' there is leaflabs maple, that is the first popular *duino running on stm32f103, the old forum which hosted this made improvements originally hosted by 'roger'
https://github.com/rogerclarkmelbourne/Arduino_STM32
https://github.com/rogerclarkmelbourne/ ... bootloader
that is the 'old' libmaple core. The boot loader is a DFU boot loader which install your sketch at 0x8002000
then that there are HID bootloaders which is developed later
viewforum.php?f=58
and again all 'custom' developed.
for stm32 mcus, the most native ways to program them remains as either using st-link v2 or a usb-uart (at uart1 pa9, pa10), requires setting boot0 to use that. This is there in all stm32 mcus and is stm32 native, it is there in every chip without any additional firmware.
if you get a stm32f4xx series (e.g. for boards as like the stm32f401 'black pill' etc,
https://stm32-base.org/boards/STM32F401 ... -V1.2.html) or stm32g4xx series, and many more, those has DFU built-in native
more details about which has DFU is in this document.
https://www.st.com/resource/en/applicat ... ronics.pdf
with those, you can simply connect a usb (phone) cable set boot0 (on stm32f401 black pil, that is a button) press reset, and it should restart into the DFU bootloader mode (native, built-in to stm32) and you can simply program away.
for 'beginners', I'd recommend going 'straight' to stm32f401 / f411, benefits:
- more sram often have like 32k sram and even much higher
- more flash often have like 128k, 256k and even 512k (i think stm32f411ce has it 512k flash)
- fast (it has that 'ART accelerator' on chip cache), which in theory for the same mhz 'others' (e.g. stm32f103 or lower) runs from flash say like at least 3 -4 or more wait states, 'ART accelerate' if it is in the cache, reduce that to *zero* wait state immediate run
- fast (it has 32bit FPU, floating point calcs between stm32f4xx vs stm32f1xx is literally 'worlds apart', stm32f4xx is like a 'race car' where you can measure the wheatstone benchmark in MFLOPS, it would be 'embarrasing' to try the same on stm32f1xx or lower)
viewtopic.php?p=939#p939
- fast - often more mhz vs stm32f1xx or lower.
I 'switched' to stm32f401, practically didn't look back. I still have stm32f103 for 'simple' apps.