als kleiner tipp, wenn du eine zentrale statemachine und passende miniatur subroutinen hast die einfach nur das gerät "am leben halten" kannst du sie aus dem hauptprogamm in den bootloader verschieben, sodass dein gerät nicht hirntot scheint während es sich selber umflasht

um dabei zusätzliche zustände oder funktionen im normalbetrieb bereitstellen zu können habe cih mich damals einer handgestrickten sprungtabelle bedient die cih beim starten in den RAM gelegt habe

die statemachine ist quasi nichts weiter als ein verschachtelter switch case der auf adressen im RAM zugreift um je anch state die notwendigen funktionen auszuführen, sofern sie im boot bereich liegen oder alternativ eine "verweigerung" oder "busy" zurück zu geben wenn ich gleichzeitig im NVM arbeite und eine aktion aus dem hauptprogramm angefordert wird