Využití bootloaderu pro aktualizaci firmwaru – výhody a ukázka z praxe

11 reading_minutes

Cíl při vývoji nového firmwaru je zřejmý – vytvořit funkční program, který bude odladěný a bez chyb. Po uvedení elektronického zařízení na trh by však práce na vývoji neměly skončit. Je důležité pracovat na aktualizacích, které umožní přidávat nové funkce a pružně řešit zjištěné nedostatky. Jakým způsobem možnost vzdáleného upgradu implementovat? Řešením je využití bootloaderu, díky kterému bude aktualizace firmwaru rychlá, bezpečná a uživatelsky přívětivá.

Vzdálená aktualizace přináší finanční úsporu

Možnost vzdálené aktualizace firmwaru elektronických zařízení je mezi našimi zákazníky stále žádanější. Výrobcům i dodavatelům totiž přináší výraznou finanční úsporu. Nemusí totiž fyzicky řešit problémy s reklamacemi a výrobky složitě stahovat z trhu.

Díky vzdálené aktualizaci se vyhnete riziku poškození dobré pověsti, navíc získáte náskok před konkurencí. Pomocí vzdáleného upgradu jednoduše přidáte nové funkce a vylepšení, a tak budete na požadavky a připomínky uživatelů pružně reagovat. Význam aktualizace na dálku si v ASN Plus dobře uvědomujeme a s její implementací máme bohaté zkušenosti. Představujeme vám konkrétní řešení upgradu s využitím bootloaderu, které jsme uplatnili při vývoji zařízení Leviathan.

Bootloader = program pro aktualizaci firmwaru

Existuje více způsobů, jak vyřešit aktualizaci firmwaru elektronického zařízení. Při vývoji zařízení Leviathan jsme v ASN Plus přistoupili k metodě využití dvou samostatných programů. O řízení hardwaru se stará hlavní program, jeho aktualizaci pak zajišťuje bootloader (také označovaný jako boot manager). Je v něm zahrnuta informace o umístění hlavního programu. Současně zajišťuje jeho spouštění a upgrade.

Pomocí bootloaderu lze jednoduše aktualizovat hlavní program, a to jak z pevného úložiště, tak z cloudu. Případný hromadný upgrade většího počtu zařízení je tak bezproblémový. Je přitom na uživateli elektronického zařízení, jestli k aktualizaci přistoupí. Princip je podobný jako u systému mobilních telefonů, kde je na zvážení uživatele, jestli jej chce aktualizovat, nebo bude dále využívat původní verzi. Bootloader je neměnný a sám o sobě se neaktualizuje. Je jen prostředkem pro upgrade hlavního programu.

Vzdálená aktualizace a její výhody

Pokládáte si otázku, jestli má význam investovat čas a finanční prostředky do implementace bootloaderu pro vzdálenou aktualizaci? Podle nás rozhodně ano. Tato funkcionalita vám jakožto výrobcům elektronických zařízení nebo vývojářům přinese mnoho výhod:  

  • Snadná aktualizace velkého počtu zařízení – implementace bootloaderu má velký význam při výrobě elektroniky ve větších sériích. Bez něj by vzdálená aktualizace zkrátka nebyla možná.

  • Odstranění chyb bez stahování z trhu – pokud se po uvedení na trh projeví u elektronického zařízení kritická chyba firmwaru, snadno ji odstraníte bez stahování výrobků z trhu.

  • Uživatelsky přívětivé řešení – vzdálenou aktualizaci zvládne i laik. Rozhraní je intuitivní. Uživatel má navíc možnost svobodně se rozhodnout, jestli k upgradu přistoupí, nebo bude dále používat původní verzi programu.

  • Náskok před konkurencí – díky bootloaderu je možné elektronické zařízení soustavně vylepšovat a přidávat nové funkce. Získáte snadno náskok před konkurencí, aniž byste museli na trh uvést zcela nový produkt.

Bootloader v zařízení Leviathan

Abyste pochopili význam a výhody bootloaderu v praxi, nastíníme vám způsob jeho implementace v zařízení Leviathan. Vyvinuli jsme jej pro firmu JeffTron, která se zaměřuje na prodej elektroniky do airsoftových zbraní. 

Leviathan zajišťuje propojení airsoftové zbraně s mobilní aplikací a přináší možnost sledování statistik střelby. Současně umožňuje i nastavení různých parametrů, ať už jde o kadenci, virtuální zásobník, přednatažení nebo kalibraci optických senzorů. Protože je řídící jednotka airsoftové zbraně vyráběna ve velkých sériích a využívá ji velké množství uživatelů, byla funkce snadného a rychlého upgradu firmware jedním ze zásadních požadavků vývoje.

Upgrade systému probíhá přes mobilní aplikaci

Součástí firmwaru zařízení Leviathan je hlavní program a bootloader. Připraví-li náš tým vývojářů novou verzi hlavního programu, který přinese opravu chyb či nové funkce, nahraje ji na server. Po zapnutí mobilní aplikace a spárování s jednotkou vždy dochází k ověření aktuální verze firmwaru a porovnání s verzí, která je na serveru dostupná. V případě, že aplikace objeví verzi novou, upozorní na tuto skutečnost uživatele. Ten pak má možnost ji přijmout a spustit, nebo odmítnout.

V případě, že uživatel aktualizaci potvrdí, stáhne se do paměti telefonu datový soubor s novou verzí hlavního programu. Aplikace následně vyšle prostřednictvím Bluetooth hlavnímu programu informaci o nadcházející aktualizaci. Hlavní program na tento podnět zareaguje – ukončí se a provede spuštění bootloaderu (není-li aktuálně spuštěný, viz níže). Aplikace následně zajistí přesun dat přes Bluetooth. Bootloader postupně data přijímá a zapisuje na místo původního hlavního programu. Ve chvíli, kdy je přenos dokončen, provede bootloader kontrolu funkčnosti. Nejsou-li data poškozená, ukončí se a spustí hlavní program v nové verzi.

Na riziko selhání aktualizace jsme nezapomněli

Ne vždy probíhá vše podle plánu. Samozřejmě se může stát, že proces aktualizace selže, ať už z důvodu ztráty signálu, poklesu napětí ve zbrani, nebo poškození dat. Pokud by byl hlavní program přepsaný nefunkční verzí, byla by airsoftová zbraň nefunkční. S tímto rizikem jsme samozřejmě počítali a připravili jsme řešení, které taková rizika zcela eliminuje.

Do hlavního programu jsme umístili CRC kód, pomocí kterého bootovací program odhalí jeho nefunkčnost a zabrání spuštění poškozeného programu. Bootloader se pak neukončí, naopak zůstane dál spuštěný a umožní opětovné provedení aktualizace. 

Aplikace v mobilním telefonu provede kontrolu verze hlavního programu a při poškození dat bootloader odpoví, že je hlavní program nefunkční. Uživateli pak bude k instalaci nabídnuta jakákoliv verze, která je na serveru dostupná. Po úspěšném dokončení upgradu bude airsoftová zbraň opět plně funkční a s nejnovější verzí firmwaru v paměti. Uživatelé se tak nemusí obávat, že by při selhání aktualizace své elektronické zařízení vyřadili z provozu. 

Různé typy firmwaru pro odlišný hardware

Zařízení Leviathan existuje v různých variantách. Některé jsou například určené pro modely s optickým spínačem, jiné pro modely se spínačem mechanickým. Každý typ hardwaru se pak neobejde bez vlastního individuálně řešeného firmwaru. Aby byla aktualizace pomocí bootloaderu úspěšná, musí se na serveru nacházet soubor s novou verzí přizpůsobený pro daný typ zařízení

Aplikace si proto po spárování se zařízením v první řadě zjišťuje, o jakou variantu hardwaru se jedná. Až v dalším kroku ověřuje verzi hlavního programu a srovnává ji s kompatibilní verzí dostupnou na serveru. Firmware je tak bez problému možné upravovat a vylepšovat pro různé typy zařízení samostatně, případně se zaměřit na inovaci jen pro jeden konkrétní typ hardwaru.

I úprava bootloaderu má svůj význam

Jak jsme již uvedli, hlavním úkolem bootloaderu je spouštění a aktualizace hlavního programu. Přesto i bootovací program dokáže přímo ovlivňovat funkčnost zařízení. Toho jsme v ASN Plus využili právě při vývoji firmwaru pro Leviathan. Vyřešili jsme tak požadavek na omezení funkčnosti jednotek, které jsou určené pro prodej do vybraných států. Konkrétně jde o ty státy, jejichž zákony zakazují možnost automatické či dávkované střelby.

Z hlediska firmwaru i hardwaru jsou všechny jednotky totožné. U těch určených pro vybrané státy je však možnost automatické střelby zablokovaná, a to právě prostřednictvím informace v bootloaderu. Omezení se díky tomu nedá obejít ani stažením nejnovější verze pro plně otevřené jednotky či úpravou programu. 

Omezení funkčnosti je dané už při výrobě

Oba typy bootloaderu fungují identicky. Některé jednotky však mají omezený (tzv. „semi only“) bootloader. Po dokončení aktualizace vždy zapíšou do paměti informaci o tom, že je automatická střelba zakázaná. Hlavní program si tuto informaci po spuštění přečte a automatickou střelbu neprovádí. Zákaz automatické střelby je díky tomu pevně daný už při výrobě, respektive při prvním nahrání firmwaru, a nedá se nijak obejít.

Ať už patříte mezi vývojáře, nebo výrobce elektroniky, možnost vzdálené aktualizace pomocí bootloaderu rozhodně zvažte. S implementací vám rádi pomůžeme. U nás v ASN Plus jsme už mnohokrát překonali řadu překážek a specifických požadavků. S komplexním vývojem firmwaru i návrhem PCB vám rádi pomůžeme.


Sdílet článek