2025-01-30 01:16 AM
Hello Forum,
I would appreciate some advice regarding bootloaders. Apologies in advance as this is mostly new to me. I have been researching the pre-programmed ST System Bootloader and OpenBootLoader (OBL) to try and figure out whether they are appropriate for firmware update in our product. Our product will most likely contain multiple STM32U5 MCUs connected together on a CAN bus. Firmware update will be performed from a Windows PC either connected to the same CAN bus or via USB to the 'main' MCU. The main 'MCU' is likely to have a 64MB filesystem available to it.
Assuming we decide to use the ST SystemBootloader then these questions come to mind:
Assuming we decide to use the OpenBootloader at the start of flash and the application at an offset from that like this:
----------------------
(ROM)
SystemBootloader --|
---------------------- <-| Jump (option byte settings)
(Flash)
OpenBootLoader --| On Go Command
---------------------- <-| Jump
(Flash)
Application
----------------------
The SystemBootloader loads runs OpenBootloader. This, so far as I can tell by looking at the code, will sit forever waiting for the GO command which is not want we want if an application has already been programmed. How should we approach this? It seems to me that there needs to be a mechanism to tell OpenBootLoader to just jump to the application but I'm 0% sure of this as I have no experience. What would be the right way?
Any advice much appreciated.
/P