Trendy

Aktualizace firmwaru pomocí bootloaderu: Výhody a popis implementace v praxi

Vytvoření skvěle odladěného firmwaru je cílem každého vývojáře. Nedostatky a chyby se však bohužel mnohdy odhalí až ve chvíli, kdy je zařízení již uvedené na trh. Možnost nápravy je pak značně komplikovaná a často i finančně náročná. Řešením je vzdálená aktualizace pomocí bootloaderu, který umožní rychlý a uživatelsky přívětivý upgrade. Přináší i možnost soustavného vylepšování zařízení a získání náskoku před konkurencí.

Snadná aktualizace firmwaru na dálku výrobcům a dodavatelům ve výsledku ušetří spoustu peněz. Eliminuje potřebu stahování výrobků od zákazníků i problémy s reklamací. Pomáhá tak předejít potenciálnímu poškození pověsti výrobce na trhu. Navíc umožňuje vzdáleně přidávat nové funkce a vylepšení, což přináší konkurenční výhodu. Na příkladu zařízení Leviathan, který vyvíjela společnost ASN Plus, si ukažme konkrétní postup implementace bootloaderu v praxi.

Bootloader – samostatný program pro aktualizaci firmwaru

Jedním ze způsobů, jak umožnit snadnou aktualizaci firmwaru elektronických zařízení, je použít dva samostatné programy. Prvním je hlavní program, který zajišťuje řízení hardwaru, druhým pak bootloader neboli boot manager. Ten v sobě nese informaci o umístění hlavního programu, stará se o jeho spouštění a případnou aktualizaci.

Díky bootloaderu lze jednoduše aktualizovat hlavní program, a to nejen z pevného úložiště, ale také z cloudu. To přináší možnost hromadného upgradu i velkého počtu zařízení. Aktualizace však nemusí být nutně vyžadována – podobně jako v případě mobilních telefonů je rozhodnutí na samotném uživateli. Je také namístě zmínit, že při aktualizaci firmwaru nedochází k upgradu obou programů, ale pouze toho hlavního. Bootloader zůstává po prvotním naprogramování neměnný a neaktualizuje se.

Výhody vzdálené aktualizace prostřednictvím bootloaderu

Ať už patříte mezi vývojáře, nebo výrobce elektroniky či jiných zařízení vybavených elektronikou, možnost snadné aktualizace rozhodně zvažte. Říkáte si, jestli se vám vyplatí investovat čas a finanční prostředky do implementace bootloaderu? Přehled výhod vám rozhodování usnadní:

  • Bootloader umožňuje snadnou aktualizaci i velkého počtu elektronických zařízení. Význam má proto zejména při výrobě elektroniky ve větší sérii. Bez bootloaderu by vzdálená aktualizace nebyla možná.
  • V případě kritické chyby ve firmwaru eliminuje potřebu stahování celé výrobní série od uživatelů v rámci reklamace. Výrobcům elektroniky tak šetří i dodatečné náklady.
  • Představuje uživatelsky přívětivé řešení. Aktualizace na dálku je intuitivní a rychlá. Uživatel se navíc svobodně rozhodne, jestli si stáhne novou verzi firmware, nebo zůstane u stávající.
  • Umožňuje velmi rychlé odstranění kritických problémů a pružnou reakci na potřeby uživatelů.
  • Vytváří prostor pro soustavné vylepšování. Kromě odstranění chyb totiž umožňuje i přidání dalších funkcí. Výrobce či dodavatel tak získává náskok před konkurencí.

Bootloader v praxi: implementace v zařízení Leviathan

Pro pochopení všech možností bootloaderu a jeho specifik přejděme od teorie k praxi. Řešením snadné vzdálené aktualizace firmwaru se zabývala společnost ASN Plus, která se dlouhodobě věnuje kompletnímu vývoji elektroniky od návrhu desek plošných spojů po vývoj firmwaru a mobilních aplikací. Pro firmu JeffTron zaměřenou na prodej elektroniky do airsoftových zbraní vyvinula zařízení Leviathan, které umožňuje propojení zbraně s mobilní aplikací.

Obraz
asn+

Uživatel má možnost sledovat statistiky střelby, případně si nastavit různé parametry (kadence, virtuální zásobník, přednatažení, kalibrace optických senzorů ad.). Protože je řídící jednotka airsoftové zbraně vyráběna ve velkých sériích a využívá ji spousta uživatelů, byla funkce snadného a rychlého upgradu firmware jedním ze stěžejních požadavků.

Snadná aktualizace pomocí mobilní aplikace

Součástí firmware je hlavní program a bootloader. Pokud tým vývojářů z ASN Plus vytvoří novou verzi hlavního programu s opravami či novými funkcemi, umístí ji na server. Mobilní aplikace po zapnutí a spárování s jednotkou Leviathan ověří aktuální verzi firmwaru a porovná ji s verzí dostupnou na serveru. Je-li k dispozici upgrade hlavního programu, vyskočí uživateli možnost aktualizaci potvrdit, nebo odmítnout.

Při potvrzení aktualizace dojde ke stažení datového souboru ze serveru do paměti telefonu. Aplikace vyšle přes Bluetooth hlavnímu programu informaci o nadcházející aktualizaci. Ten na zprávu zareaguje ukončením a spuštěním bootloaderu (pokud již není spuštěný, viz dále). Aplikace zahájí přesun dat, bootloader je přijímá a zapisuje na místo původního hlavního programu. Po dokončení nahrávání nového firmwaru bootloader provede kontrolu a nejsou-li data poškozená, ukončí se a spustí hlavní (již aktualizovaný) program.

Co se stane, když dojde k selhání aktualizace?

Může se stát, že aktualizace firmwaru neproběhne podle plánu a dojde k jejímu selhání. Důvodů může být řada – pokles napětí ve zbrani, ztráta signálu mezi telefonem a zbraní, poškození dat hlavního programu apod. Po přepnutí na poškozený program by byla airsoftová zbraň nepoužitelná. Na tato rizika však při vývoji v ASN Plus nezapomněli.

Součástí hlavního programu je CRC kód, díky kterému dokáže bootovací program odhalit jeho nefunkčnost a zabránit případnému spuštění. Bootloader se neukončí, a tak bude možné proces aktualizace opakovat. Mobilní aplikace znovu zkontroluje verzi hlavního programu a bootloader odpoví, že je program poškozený. Jakákoliv verze dostupná na serveru bude uživateli nabídnuta k instalaci. Po úspěšném dokončení upgradu bude airsoftová zbraň opět v plně funkčním stavu a s nejnovější verzí firmwaru.

Rozdílný hardware vyžaduje vlastní typ firmwaru

Při vývoji elektroniky je častým požadavkem zadavatele vytvoření několika typů hardware. Tak je tomu i v případě Leviathanu, který existuje v různých variantách (pro odlišné typy zbraní, pro modely s optickým spínačem místo mechanického apod.). Každý typ hardwaru pak vyžaduje vlastní individuálně řešený firmware.

Pro úspěšnou aktualizaci pomocí bootloaderu je nezbytné, aby na serveru existoval datový soubor přizpůsobený danému typu zařízení. Proto si aplikace po spárování se zařízením nejprve zjistí, 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. Díky tomu je možné inovovat firmware jen pro určité typy zařízení, ostatním uživatelům možnost aktualizace nabídnuta nebude.

Úpravou bootloaderu omezíte vybrané funkce hardwaru i po aktualizaci

I když bootloader slouží primárně pro spouštění a aktualizaci hlavního programu, může ovlivňovat i funkčnost zařízení. Konkrétně v případě airsoftové jednotky Leviathan se museli vývojáři z ASN Plus vypořádat s požadavkem na omezení funkčnosti jednotek určených k prodeji v některých státech. Tamní zákony totiž zakazují automatickou střelbu, eventuálně střelbu v dávkách.

Z hlediska hardwaru i firmwaru se jedná o naprosto totožné jednotky, jen funkce automatické střelby je u modelů určených pro část trhu zablokovaná. Firmware musel být navržený tak, aby se požadované omezení nedalo obejít stažením verze hlavního programu pro státy s benevolentnějšími pravidly. Z toho důvodu je u vybraných modelů omezení funkčnosti zahrnuté přímo v bootloaderu, který nelze aktualizovat.

Oba typy bootloaderu fungují identicky. Ovšem jednotky, které mají omezený („semi only“) bootloader, po dokončení aktualizace zapíší 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í.

Povolení či zákaz automatické střelby je určen již při výrobě, respektive při prvotním nahrání firmwaru. Uživatel nemá žádnou možnost tuto funkčnost ovlivnit – hlavní program zůstává pro všechny varianty hardware stejný, omezení je v bootloaderu, který nelze měnit uživatelem. Současně tím odpadá nutnost vývoje odlišných verzí firmwaru, které by musely být určené pro zařízení s omezením.

Možnost vzdálené aktualizace firmware pomocí bootloaderu je uživatelsky přívětivá a přináší řadu výhod i samotným výrobcům elektroniky. Při vývoji firmware je však nezbytné překonat řadu překážek, ať už jde o různé varianty hardware, neúspěšné načtení dat, či požadavek na omezení funkcionalit. Potřebujete-li zajistit vývoj elektroniky s možností bezproblémového upgradu, obraťte se na vývojáře, kteří mají s touto oblastí zkušenosti.

Marek Poborský, Senior programátor

Jesteś zainteresowany więcej tematem?
Połącz się z naszymi fachowcami:
Pavel Schiller
CEO