Dezvoltarea unui sistem embedded, în care software-ul și hardware-ul trebuie să se potrivească perfect, a devenit extrem de complexă și dificilă, chiar și pentru dispozitivele Internet of Things (IoT) care pot părea cele mai simple. Atât de mult încât, atunci când ceva nu merge bine − așa cum se întâmplă în mod inevitabil − timpii de depanare nu sunt, de obicei, de câteva ore, ci pot dura săptămâni sau luni. Aceste întârzieri adaugă costuri de dezvoltare, împiedică un produs să ajungă pe piață la timp, întârzie programele de fabricație și afectează lanțurile de aprovizionare și planurile de afaceri.
Cea mai bună modalitate pentru a reduce timpul petrecut la depanare și a menține un proiect pe drumul cel bun este de a utiliza o combinație de instrumente de depanare hardware și software disponibil în mod gratuit pentru a obține informații despre modul în care funcționează un sistem și unde apar problemele.
Ca atare, atât pentru profesioniști, cât și pentru pasionați, posibilitatea de a dispune de instrumentele potrivite pentru o anumită sarcină ajută în mod semnificativ la realizarea rapidă și corectă a acesteia.
Dispozitivul IoT tipic pentru depanare
Dispozitivele IoT au devenit predominante în aproape toate industriile, de la casa inteligentă la controlul monitorizării industriale. În ciuda varietății aplicațiilor, există câteva componente tipice pe care trebuie să le aibă un dispozitiv IoT. Acestea includ:
• Un microprocesor
• Un receptor radio pentru conectivitate
• Senzori
Un dezvoltator nu are de gând să-și personalizeze propria placă pentru a explora tehnicile de depanare sau pentru a testa părți din codul aplicației sale. Ar necesita un consum prea mare de timp. În schimb, este mai înțelept să lucrați pe o placă de dezvoltare cu costuri reduse, cum ar fi placa “B-L4S5I-IOT01A Discovery Kit for IoT Node” de la STMicroelectronics. Aceasta dispune de aproape tot ce se găsește pe un dispozitiv IoT tipic (Figura 1).
Placa include STM32L4S5VIT6, un microcontroler Arm® Cortex®-M4 care rulează la 120 megahertzi (MHz). Acesta este susținut de o memorie flash de până la 2 megaocteți (Mbytes) și de 640 kiloocteți (Kbytes) de memorie RAM. Important pentru scopul acestui exercițiu − placa include Wi-Fi și o multitudine de senzori care pot fi utilizați pentru a construi rapid un simplu dispozitiv de testare IoT.
Instrumente hardware profesionale pentru depanare
Aproape fiecare placă de dezvoltare include o interfață JTAG/SWD pentru ca dezvoltatorii să nu fie nevoiți să-și cumpere propriul programator. În schimb, ei pot lucra cu placa de dezvoltare imediat după ce este scoasă din cutie. Deși acest lucru este perfect în scopuri de marketing, pentru ingineria reală nu este prea grozav: depanatoarele de pe placă sunt adesea variante care au limitări, precum numărul de puncte de întrerupere disponibile și rata de transfer a interfeței. Pentru cei neinițiați, aceste limitări pot să nu pară o mare problemă, dar dacă aveți puncte de întrerupere nelimitate evitați să activați și să dezactivați în mod constant punctele de întrerupere, iar vitezele mari de transfer sunt necesare pentru urmărirea aplicațiilor (mai multe despre “urmărire” în secțiunea privind instrumentele software).
Există o gamă variată de instrumente disponibile, care pot oferi o experiență de depanare profesională, dar instrumentele în sine reprezintă doar jumătate din soluție. Acestea trebuie să fie susținute de un software bun. Un set de instrumente care se remarcă atât din punct de vedere hardware, cât și software este seria SEGGER J-Link. Această serie are o versiune de depanare destinată aproape oricărui tip de dezvoltator, de la studenți și pasionați până la profesioniști înrăiți.
Există două modele pe care experiența a demonstrat că sunt cele mai utile pentru un dezvoltator obișnuit: J-Link Base și J-Link Ultra+ (Figura 2). Din punct de vedere al factorului de formă, cele două unități sunt identice, dar J-Link Ultra+ oferă dezvoltatorului viteze de descărcare mai mari către RAM (3 Mbytes/s față de 1,0 Mbyte/s) și o viteză mai mare a interfeței SWD (100 MHz în loc de 30 MHz). Vitezele mai rapide fac toată diferența atunci când un dezvoltator dorește să își urmărească aplicația pentru a obține informații despre performanță, comportamentul RTOS și pentru a depana sistemul.
Partea bună despre J-Link și placa de dezvoltare B-L4S5I-IOT01A este că cele două pot fi conectate prin intermediul unui cablu Tag-Connect TC2050-IC-NL și al unei cleme de fixare TC2050-CLIP-3PACK. Acestea permit conectarea unui depanator la placa de dezvoltare prin intermediul unei plachete de prindere “nails pad” (Figura 3). Este posibil să fie necesar să adaptați conectorul cu 20-pini al J-Link la conectorul cu 10-pini de pe cablul TC-2050. O opțiune care poate fi utilizată în acest scop este adaptorul cu 10-pini − 8.06.04 J-Link. Odată ce dezvoltatorul a finalizat conectarea din punct de vedere hardware, poate utiliza instrumentele software pentru a-și analiza și depana aplicația.
Instrumente profesionale pentru depanare software
Există destul de multe instrumente software compatibile cu instrumentele SEGGER J-Link, dar care, în mod surprinzător, nu sunt furnizate de SEGGER. În cele ce urmează, vom analiza câteva dintre aceste instrumente gratuite și vom vedea cum pot dezvoltatorii să le utilizeze pe fiecare dintre acestea pentru a depana software-ul lor.
Primul este J-Scope. Acesta este un instrument asemănător unui osciloscop care afișează valorile variabile în timp. Dezvoltatorii pot monitoriza o singură variabilă sau câteva zeci de variabile. Rețineți, totuși, că pe măsură ce sunt monitorizate mai multe variabile, doar câteva eșantioane pot fi colectate înainte ca bufferul de eșantionare să se supra-aglomereze și să se piardă date.
Variabilele sunt selectate prin transmiterea către J-Scope a unui fișier elf emis de compilator.
Acesta furnizează locațiile de memorie care urmează să fie citite, iar dezvoltatorul poate apoi să își seteze ratele de eșantionare și să monitorizeze modul în care variabila (variabilele) se modifică în timp. Un exemplu simplu pentru o urmărire a trei variabile poate fi văzut în figura 4.
Următorul este Ozone. Acesta este o interfață de depanare și un analizor de performanță. Dezvoltatorii își pot încărca fișierul elf în acest instrument și pot efectua depanarea la nivel de sursă. Ei pot seta puncte de întrerupere și își pot actualiza codul.
O caracteristică deosebit de utilă pentru dezvoltatori este aceea că pot, în egală măsură, să urmărească instrucțiunile (dacă hardware-ul lor suportă acest lucru) și să identifice ce instrucțiuni de cod de asamblare și C au fost executate. Acest lucru este deosebit de util pentru a verifica acoperirea codului în timpul testărilor de tip HiL (hardware-in-loop).
De asemenea, Ozone poate ajuta dezvoltatorii să analizeze performanța sistemului lor (figura 5) și să vizualizeze variabilele în timp. Acesta oferă capabilități similare cu cele oferite de J-Scope, dar într-o manieră mai integrată. Poate fi folosit chiar și pentru a monitoriza consumul de putere și pentru a sincroniza toate aceste evenimente împreună într-un singur loc.
Un al treilea instrument este SystemView. Sistemul permite dezvoltatorilor să analizeze comportamentul sistemului RTOS în timpul execuției. Comutarea sarcinilor este înregistrată într-un buffer de urmărire și apoi raportată la SystemView prin intermediul depanatorului (Figura 5). SystemView afișează apoi aceste informații într-un mod care permite dezvoltatorului să vadă comutările de context și să măsoare performanța sistemului său. Aceasta este, de asemenea, o modalitate excelentă de a vizualiza un sistem și de a găsi erori și alte probleme.
Sfaturi și trucuri pentru depanarea unui sistem embedded
Depanarea unui dispozitiv IoT necesită ca dezvoltatorii să dispună de instrumentele potrivite atât din punct de vedere hardware, cât și software. Ambele componente trebuie să fie la îndemâna dezvoltatorilor pentru ca aceștia să reducă la minimum timpul dedicat depanării.Pentru a depana cu succes, există mai multe “sfaturi și trucuri” pe care dezvoltatorii ar trebui să le aibă în vedere, cum ar fi:
• Utilizați un depanator profesional care maximizează viteza de transmisie a interfeței. Cantitatea de date utile care poate fi obținută de la un sistem va depinde de rapiditatea cu care pot fi primite aceste date. Vitezele mai mici au ca rezultat o sesiune de depanare mai lungă.
• Configurați software-ul de depanare la începutul ciclului de dezvoltare. Dezvoltatorii nu ar trebui să aștepte până când au o problemă pentru a-și configura instrumentele de depanare.
• Utilizați instrumente de urmărire încă de la începutul dezvoltării. Acest lucru va permite dezvoltatorilor să monitorizeze performanțele sistemului și să înțeleagă imediat modul în care modificările software-ului îl afectează.
• Folosiți urmărirea instrucțiunilor sau eșantionarea contorului de program pentru a înțelege acoperirea codului de sistem în timpul testării. Vor exista erori în ramurile condiționate și în codul care nu a fost testat.
• Profitați de protocoalele de transfer rapid pentru a obține date off-chip, cum ar fi bibliotecile de transfer în timp real (RTT).
Dezvoltatorii care urmează aceste “sfaturi și trucuri” vor descoperi că scapă de multe probleme și economisesc timp atunci când încearcă să dezvolte un dispozitiv IoT.
Concluzie
Software-ul dispozitivelor IoT a devenit complex, dar asta nu înseamnă că dezvoltatorii profesioniști sau pasionați trebuie să se blocheze în mod constant în depanarea sistemelor lor. Utilizarea instrumentelor și a soft- ware-ului de dezvoltare profesionale le poate oferi programatorilor informațiile de care au nevoie nu doar pentru a depana un sistem, ci și pentru a analiza și îmbunătăți performanța sistemului lor. Prin investiția în aceste instrumente, utilizatorii pot reduce semnificativ timpul petrecut la depanare și își pot face proiectele să funcționeze și să ajungă pe piață într-un interval de timp rezonabil.
Autor: Rolf Horn – Inginer de aplicații
Rolf Horn, face parte din grupul European de Asistență Tehnică din 2014, având responsabilitatea principală de a răspunde la întrebările venite din partea clienților finali din EMEA referitoare la Dezvoltare și Inginerie, precum și la scrierea și corectarea articolelor și postărilor de pe platformele TechForum și https://maker.io ale firmei Digi-Key pentru cititorii din Germania. Înainte de Digi-Key, el a lucrat la mai mulți producători din zona semiconductorilor, cu accent pe sistemele embedded ce conțin FPGA-uri, microcontrolere și procesoare pentru aplicații industriale și auto. Rolf este licențiat în inginerie electrică și electronică la Universitatea de Științe Aplicate din Munchen, Bavaria. Și-a început cariera profesională la un distribuitor local de produse electronice în calitate de Arhitect pentru Soluții de Sistem pentru a-și împărtăși expertiza și cunoștințele în calitate de consilier de încredere.
Hobby-uri: petrecerea timpului cu familia + prietenii, călătoriile (cu rulota familiei VW-California) și motociclismul (pe un BMW GS din 1988).
Digi-Key Electronics | https://www.digikey.ro