Průvodce profesionála k ladicím nástrojům a technikám pro zařízení IoT

By Jacob Beningo

Contributed By DigiKey's North American Editors

Vývoj vestavěného systému, kde musí software a hardware dobře spolupracovat, se stal extrémně složitým a náročným, a to i pro taková zařízení, která se mohou zdát jako nejjednodušší zařízení internetu věcí (IoT). A to do takové míry, že když se něco pokazí, jak se nevyhnutelně stane, doba ladění nebývá obvykle několik hodin, ale celé týdny nebo i měsíce. Tato zpoždění zvyšují náklady na vývoj, brání tomu, aby se produkt dostal na trh včas, zpožďují výrobní plány a narušují dodavatelské řetězce a obchodní plány.

Nejlepší způsob, jak zkrátit dobu strávenou laděním a držet se při vývoji projektu plánu, je použít kombinaci hardwarových ladicích nástrojů a volně dostupného softwaru, abyste získali přehled o tom, jaký je výkon systému a kde dochází k problémům. Nalezení správných nástrojů tak profesionálům i kutilům pomůže dramaticky tento úkol urychlit a provést jej správně.

V tomto článku se pojednává o vývojových nástrojích a softwaru, které lze použít k ladění a analýze výkonu zařízení IoT. Jako příklad zařízení IoT zde použijeme vývojovou desku od společnosti STMicroelectronics a k porozumění a ladění systému použijeme nástroje a software od společnosti SEGGER Microcontroller Systems. Probereme zde několik tipů a triků, jak minimalizovat dobu ladění a dodat projekt IoT podle plánu.

Typické zařízení IoT k ladění

Zařízení IoT se začala rozšiřovat do téměř všech oborů od chytré domácnosti až po průmyslové monitorovací kontroly. I přes různorodost aplikací existuje několik typických komponent, které bude mít každé zařízení IoT. Patří mezi ně následující:

  • Mikroprocesor
  • Rádio k připojení
  • Senzory

Vývojář nebude chtít přizpůsobovat vlastní desku, aby prozkoumal techniky ladění nebo otestoval části svého kódu aplikace. Je to časově příliš náročné. Rozumnější je namísto toho pracovat na nízkonákladové vývojové desce, jako je souprava Discovery Kit B-L4S5I-IOT01A pro uzel IoT od společnosti STMicroelectronics. Má téměř vše, co se nachází na typickém zařízení IoT (obrázek 1).

Schéma soupravy Discovery Kit B-L4S5I-IOT01A společnosti STMicroelectronicsObrázek 1: Souprava Discovery Kit B-L4S5I-IOT01A pro uzel IoT společnosti STMicroelectronics obsahuje všechny komponenty, které jsou v zařízení IoT obvykle vyžadovány. (Zdroj obrázku: STMicroelectronics)

Deska obsahuje mikrokontrolér STM32L4S5VIT6 založený na procesoru Arm® Cortex®-M4 s frekvencí 120 MHz. Mikrokontrolér je dále podporován 2 MB flash paměti a 640 kB paměti RAM. Důležité pro účely této ukázky je, že deska obsahuje Wi-Fi a nepřeberné množství senzorů, které lze použít k rychlé konstrukci falešného testovacího zařízení IoT.

Profesionální ladicí hardwarové nástroje

Téměř každá vývojová deska je dodávána s integrovaným rozhraním JTAG/SWD, takže vývojáři nemusí jít a hledat si vlastního programátora. Místo toho mohou pracovat s vývojovou deskou ihned po vybalení z krabice. I když je to skvělé pro marketingové účely, pro skutečné inženýrství to až tolik neplatí: integrované debuggery jsou často dramaticky zmenšené verze, které mají omezení, jako je počet dostupných zarážek a přenosová rychlost rozhraní. Nezasvěceným se tato omezení nemusí zdát jako velký problém, ale možnost neomezených zarážek umožňuje vyhnout se jejich neustálému povolování a zakazování. A pro trasování aplikací jsou potřeba rychlé přenosové rychlosti (více o trasování viz část o softwarových nástrojích).

K dispozici je několik různých nástrojů, které mohou poskytovat ladění na profesionální úrovni, ale samotné nástroje jsou pouze polovinou řešení. Nástroje musí být podporovány kvalitním softwarem. Jednou sadou nástrojů, která z hlediska hardwaru i softwaru vyniká, je řada SEGGER J-Link. Tato řada má verzi debuggeru pro téměř jakýkoli typ vývojáře, od studentů a kutilů až po hardcore profesionály.

Jako nejužitečnější se pro běžného vývojáře ukázaly dva modely: J-Link BaseJ-Link Ultra+ (obrázek 2). Co se týče rozměrů, jsou obě jednotky identické. Ale model J-Link Ultra+ poskytuje vývojářům rychlejší stahování do paměti RAM (3 MB/s oproti 1,0 MB/s) a rychlejší rozhraní SWD (100 MHz namísto 30 MHz). Rychlejší rychlosti představují rozdíl, když chce vývojář sledovat svou aplikaci, aby získal přehled o výkonu, chování systému RTOS a ladění systému.

Obrázek modelu SEGGER J-Link Ultra+Obrázek 2: Model SEGGER J-Link Ultra+ poskytuje vývojářům vylepšený debugger díky cílovému rozhraní 50 MHz. (Zdroj obrázku: společnost SEGGER Microcontroller Systems)

Pěkné na sadě J-Link a vývojové desce B-L4S5I-IOT01A je, že lze oba produkty propojit prostřednictvím kabelu TC2050-IC-NL Tag-Connect a příchytky TC2050-CLIP-3PACK. Debugger je tak možné připojit k vývojové desce pomocí podložky podobající se hřebíkům (obrázek 3). Může být nutné přizpůsobit 20pinový konektor J-Link na 10pinový konektor na kabelu TC-2050. Jednou z možností, kterou k tomu lze použít, je 10pinový jehlový adaptér 8.06.04.

Obrázek vývojové desky B-L4S5I-IOT01A společnosti STMicroelectronicsObrázek 3: Na vývojové desce B-L4S5I-IOT01A lze sestavu kabelů Tag-Connect připojit pomocí rozměru PC desky podobající se hřebíkům (vpravo). (Zdroj obrázku: STMicroelectronics)

Jakmile má vývojář tuto cestu na straně hardwaru uzavřenou, může analyzovat a ladit svou aplikaci pomocí softwarových nástrojů.

Profesionální ladicí softwarové nástroje

Existuje poměrně málo softwarových nástrojů, které by dobře spolupracovaly s nástroji SEGGER J-Link, které společnost SEGGER překvapivě neposkytuje. Níže se podíváme na několik z těchto bezplatných nástrojů a ukážeme si, jak mohou vývojáři každý z nich použít k ladění svého softwaru.

První na řadě je nástroj J-Scope. J-Scope je nástroj podobný osciloskopu, který zobrazuje hodnoty proměnných v průběhu času. Vývojáři mohou sledovat jednu proměnnou nebo několik desítek proměnných. Je však nutné upozornit, že když se sleduje více proměnných, je možné odebrat méně vzorků, než přeteče vyrovnávací paměť vzorků a dojde ke ztrátě dat.

Proměnné se vybírají poskytnutím souboru ELF nástroji J-Scope, který je výstupem kompilátoru. Získá se tak v paměti místo ke čtení a vývojář pak může nastavit vzorkovací frekvence a monitorovat, jak se proměnné v průběhu času mění. Jednoduchý příklad trasování se třemi proměnnými lze vidět na obrázku 4.

Obrázek nástroje SEGGER J-Scope používaného k monitorování proměnnýchObrázek 4: Nástroj J-Scope lze použít k monitorování proměnných prostřednictvím nástroje J-Link, zatímco aplikace běží v reálném čase. (Zdroj obrázku: společnost SEGGER Microcontroller Systems)

Další z řady nástrojů je Ozone. Ozone je ladicí rozhraní a analyzátor výkonu. Vývojáři mohou načíst svůj soubor ELF do nástroje a provádět ladění na úrovni zdroje. Mohou nastavovat zarážky a aktualizovat svůj kód. Obzvláště užitečnou funkcí pro vývojáře je, že mohou provádět také trasování instrukcí (pokud to jejich hardware podporuje) a určovat, jaké sestavení a výrazy kódu C byly provedeny. To je zvláště užitečné pro ověření pokrytí kódu při testování hardwaru ve smyčce (HiL).

Nástroj Ozone také může vývojářům pomoci analyzovat výkon systému (obrázek 5) a vizualizovat proměnné v průběhu času. Jedná se o stejné funkce jako v nástroji J-Scope, ale v integrovanějším provedení. Lze jej dokonce použít k monitorování spotřeby energie a synchronizaci všech těchto událostí na jednom místě.

Obrázek – analyzátor SEGGER Ozone lze použít ke sledování proměnných přes nástroj J-Link.Obrázek 5: Analyzátor Ozone lze kromě pokrytí kódu a ladění s ohledem na RTOS použít ke sledování proměnných prostřednictvím nástroje J-Link. (Zdroj obrázku: SEGGER Microcontroller Systems)

Třetím nástrojem je SystemView. SystemView umožňuje vývojářům analyzovat chování systému RTOS za běhu. Přepínání úloh se zaznamenává do vyrovnávací paměti trasování a poté se nahlásí do nástroje SystemView prostřednictvím ladicího programu (obrázek 5). Nástroj SystemView poté zobrazí tyto informace způsobem, který vývojáři umožňuje zobrazit kontextové přepínače a měřit výkon systému. Jde také o skvělý způsob, jak vizualizovat systém a najít chyby a další problémy.

Schéma nástroje SEGGER SystemView poskytujícího propojení se systémem RTOSObrázek 6: Nástroj SystemView poskytuje propojení se systémem RTOS, který umožňuje vývojářům měřit výkon úloh a vizualizovat, co systém RTOS dělá a kdy to dělá. (Zdroj obrázku: SEGGER Microcontroller Systems)

Tipy a triky pro ladění vestavěného systému

Ladění zařízení IoT vyžaduje, aby vývojáři měli správné nástroje jak hardwarové, tak softwarové. Pokud chtějí vývojáři minimalizovat čas, který tráví laděním, musí být obě části na svém místě. K úspěšnému ladění existuje několik „tipů a triků“, které by vývojáři měli mít na paměti, například:

  • Používejte profesionální debugger, který maximalizuje přenosovou rychlost rozhraní. Množství užitečných dat, která lze ze systému získat, bude záviset na tom, jak rychle mohou být tato data přijata. Nižší rychlosti vedou k delší relaci ladění.
  • Nastavte ladicí software v časných fázích cyklu vývoje. Vývojáři by neměli čekat, až budou mít problém s nastavením ladicích nástrojů.
  • Od začátku vývoje používejte sledovací nástroje. To vývojářům umožní sledovat výkon systému a okamžitě pochopit, jak to ovlivňuje změny softwaru.
  • Využijte trasování instrukcí nebo vzorkování čítače programu, abyste pochopili pokrytí systémového kódu během testování. Chyby se budou objevovat v netestovaných podmíněných větvích a kódu.
  • Využijte protokoly rychlého přenosu k umístění dat mimo čip, například knihoven RTT.

Vývojáři, kteří se budou těchto „tipů a triků“ držet, zjistí, že při pokusu o vývoj zařízení IoT ušetří spoustu času a nervů.

Závěr

Software zařízení IoT je čím dál složitější, ale to neznamená, že se profesionální nebo amatérští vývojáři musí zastavovat na neustálém ladění systémů. Používání profesionálních vývojových nástrojů a softwaru může vývojářům poskytnout informace, které potřebují nejen k ladění systému, ale také k analýze a zlepšení výkonu systémů. Investicí do těchto nástrojů mohou uživatelé dramaticky snížit dobu strávenou laděním, nechat své projekty dále běžet a uvádět je na trh v rozumném časovém rámci.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors