Režimy bootloaderu
Bootloader (tzv. zavaděč) je softwarová komponenta, která se spouští jako první při zapnutí zařízení. Jejím úkolem je většinou pouze skok do hlavního programu. Má ale i několik dalších módů, které popisuje tato kapitola. Speciálním režimem je mód commands, díky němuž je možno konfigurovat zařízení.
Mód JUMP
Jedná se o výchozí mód, pokud není nastaveno jinak. Cílem je pouze spustit hlavní firmware.
Režim JUMP sestává z několika kroků:
Kontrola přitomnosti hlavní aplikace. Pokud hlavní aplikace není dostupná, dojde k přepnutí do command režimu.
Spuštění watchdogu (pokud je nastaveno) a případné nastavení na příslušnou hodnotu. Blíže vysvětleno v sekci watchdog.
Skok do hlavní aplikace
Mód FLASH
Do módu FLASH bootloader automaticky přechází, pokud při předchozím běhu firmware byl přijat nový validní firmware, který bude nutno nahrát na místo hlavní aplikace (více viz aktualizace firmware). Mód je detekován tím, že v průběhu běhu předchozího firmware je zapnut signalizátor flashflag, který se po přehrání firmware automaticky vypíná.
V průběhu aktualizace hlavního programu novým programem probíhají tyto kroky
Načtení struktury s informacemi o novém firmware
Validace a případná oprava velikosti, je-li to možné
Je-li zapnuta funkce autobackup, provede se záloha aktuálně běžícího firmware
Vymazání interní paměti
Překopírování všech částí binárky z externí paměti do mikrokontroléru
Aktualizace informací o novém firmware v mikrokontroléru
Pokud všechny tyto kroky proběhnou v pořádku, následuje
Vypnutí ''flashflag''
Zapnutí signalizátoru ''launched'', který slouží ke kontrole funkčnosti nového firmware. Pokud bude po restartu nový firmware nefunkční, "lauchned" se nevypne, watchdog restartuje mikrokontrolér a v dalším běhu bootloaderu je aktivován mód RESTORE.
Mód RESTORE
Tento mód navazuje na mód FLASH. Pokud se hlavní program po posledním naflashování nespustil (tedy bootloader detekuje zapnutý flag ''launched'' z režimu FLASH), mikrokontrolér je po čase resetován watchdogem, mód RESTORE je automaticky vyvolán a spustí se obnovení posledního funkčního firmwaru, který byl dříve zazálohován funkcí autobackup.
Mód COMMANDS
Mód COMMANDS slouží k offline konfiguraci zařízení pomocí sériové linky.
Do módu COMMANDS je možné vstoupit několika způsoby
Kombinací tlačítek
Chybí hlavní aplikace
Bootloader není nakonfigurován (vypnutá proměnná ''configured'')
Tyto a mnoho dalších informací jsou zpracovány v samostatném článku.
Command módMód FACTORY RESET
Mód FACTORY RESET slouží k nastavený výchozích hodnot. Je možno jej vyvolat tak, že uživatel stiskne zároveň tlačítka ''restart'' a ''user'', pustí ''restart'' a tlačítko ''user'' drží dlouhou dobu, zpravidla více jak 10 sekund. V této chvíli nastává vymazání paměti a nastavení výchozích hodnot, načež se spustí režim COMMANDS, stejně jako by byl mikrokontrolér poprvé spuštěn.
Výběr režimu
Výběr režimu se řídí pravidly popsanými výše. Ucelený přehled a přechody mezi jednotlivými režimy shrnuje následující ilustrace stavového automatu bootloaderu.
Last updated