InfiniTime.git

ref: 72c992c84e44ac9a6dd8c53055a00ca801bf9ffe

doc/bootloader/upgrade.puml


@startuml

MCU -> Bootloader: reset
activate Bootloader
Bootloader -> Bootloader: Recover? (no)
Bootloader -> Bootloader: New version? (yes)
Bootloader -> Bootloader: Swap firmwares
note left: Copy current firmware from primary to secondary\nand copy the new firmware from secondary to primary
Bootloader -> Application: Jump to primary slot
deactivate Bootloader


activate Application
note right: This is the new version of the firmware
Application -> Application: Write the valid bit in flash memory
note right: The application should provide a way to\ncheck that it is running correctly\n(selftest, user confirmation,...)\nbefore setting the valid bit.
Application -> Application: Normal operations...
Application -> MCU: Reset
deactivate Application

@enduml