Hello @ABlum.2 ,
To develop a Bootloader, you can use the OpenBootloader package called (OpenBL), that behaves exactly like the system bootloader.
For the moment, OpenBL supports only STM32G0 and STM32G4 series:
- \STM32Cube_FW_G4_V1.x.x\Middlewares\ST\OpenBootloader
- \STM32Cube_FW_G4_V1.x.x\Projects\NUCLEO-G491RE\Applications\OpenBootloader
So, you can customize it for other products series like STM32H7 according to your needs.
More information on OpenBL is available for example in USART protocol used in the STM32 bootloader (AN3155).
I recommend also that you refer to the FAQ STM32 boot process and application note AN2606 "STM32 microcontroller system memory boot mode", and you find related information to STM32H7xx bootloader.
Hope my answer helped you!
Please mark my answer as best by clicking on the "Select as Best" button if it helped :)
Imen