Ghidul profesionistului pentru depanarea instrumentelor și tehnici pentru dispozitivele IoT
Contributed By DigiKey's North American Editors
2021-03-23
Dezvoltarea unui sistem încorporat, în care software-ul și hardware-ul trebuie să funcționeze bine împreună, a devenit extrem de complexă și dificilă, chiar și pentru dispozitivele Internet of Things (IoT) care par a fi cele mai simple. Atât de complexă și dificilă, î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 fi de săptămâni sau luni. Aceste întârzieri cresc costurile de dezvoltare, împiedică scoaterea la timp pe piață a unui produs, întârzie programele de producție și distrug lanțurile de aprovizionare și planurile de afaceri.
Cel mai bun mod de a reduce timpul petrecut pentru depanare și de a menține un proiect pe drumul cel bun este de a utiliza o combinație de instrumente de depanare hardware și software disponibile gratuit pentru a obține informații despre cum funcționează un sistem și unde apar problemele. Drept urmare, atât pentru profesioniști, cât și pentru pasionații de hobby, utilizarea uneltelor potrivite pentru o lucrare ajută foarte mult la realizarea rapidă și corectă a acesteia.
Acest articol va prezenta instrumentele de dezvoltare și software-ul care pot fi utilizate pentru a depana și a analiza performanța unui dispozitiv IoT. Se va folosi o placă de dezvoltare de la STMicroelectronics ca exemplu de dispozitiv IoT și se vor utiliza instrumentele și software-ul SEGGER Microcontroller Systems pentru a înțelege și a depana sistemul. În plus, vor fi prezentate câteva sfaturi și trucuri privind modul de minimizare a timpului de depanare și de livrare a unui proiect IoT la timp.
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 un dispozitiv IoT le va avea. Acestea includ:
- Un microprocesor
- Un radio pentru conectivitate
- Senzori
Un dezvoltator nu va dori să își întoarcă propria placă pe toate părțile pentru a explora tehnici de depanare sau pentru a testa părți din codul aplicației sale. Aceasta, pur și simplu, consumă prea mult timp. În schimb, este mai înțelept să lucrați pe o placă de dezvoltare ieftină, cum ar fi kitul B-L4S5I-IOT01A Discovery pentru nodurile IoT de la STMicroelectronics. Acesta are aproape tot ceea ce se găsește pe un dispozitiv IoT tipic (Figura 1).
Figura 1: kitul B-L4S5I-IOT01A Discovery STMicroelectronics pentru nodurile IoT include toate componentele care sunt în mod obișnuit necesare într-un dispozitiv IoT. (Sursă imagine: STMicroelectronics)
Placa include STM32L4S5VIT6, un microcontroler Arm® Cortex®-M4 care funcționează la 120 megahertzi (MHz). Aceasta este susținută de până la 2 megaocteți (Mbytes) de memorie flash și 640 kiloocteți (Kbytes) de memorie RAM. Ceea ce este important pentru scopul acestui exercițiu este faptul că placa include Wi-Fi și o multitudine de senzori care pot fi utilizați pentru a construi rapid un dispozitiv de testare IoT simulat.
Instrumente hardware profesionale de depanare
Aproape fiecare placă de dezvoltare este prevăzută cu o interfață JTAG/SWD integrată, astfel că dezvoltatorii nu trebuie să își găsească un programator propriu. În schimb, ei pot lucra cu placa de dezvoltare imediat după ce au scos-o din cutie. Deși acest lucru este excelent în scopuri de marketing, nu este foarte bun pentru ingineria reală: depanatoarele integrate sunt adesea versiuni drastic reduse, care au limitări, cum ar fi numărul de puncte de întrerupere disponibile și viteza de transmisie a interfeței. Pentru cei neinițiați, aceste limitări pot părea puțin importante, dar existența punctelor de întrerupere nelimitate înseamnă că nu trebuie să activați și să dezactivați constant punctele de întrerupere, iar pentru urmărirea aplicațiilor sunt necesare viteze de transmisie rapide (mai multe despre urmărire în secțiunea instrumentelor software).
Există mai multe instrumente diferite disponibile care pot oferi o experiență profesională de depanare, dar instrumentele în sine reprezintă doar jumătate din soluție. Instrumentele trebuie să fie susținute de un software bun. Un set de instrumente care se remarcă, atât din punctul de vedere al hardware-ului, cât și al software-ului, este seria SEGGER J-Link. Această serie are o versiune de depanator pentru aproape orice tip de dezvoltator, de la studenți și pasionați de hobby-uri până la profesioniști înrăiți.
Există două modele care, pe baza experienței, s-au dovedit a fi cele mai utile pentru dezvoltatorul general: J-Link Base și J-Link Ultra+ (Figura 2). În ceea ce privește factorul de formă, cele două unități sunt identice, dar J-Link Ultra+ oferă dezvoltatorului o viteză de descărcare mai mare 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 mari fac 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.
Figura 2: SEGGER J-Link Ultra+ oferă dezvoltatorilor o experiență îmbunătățită de depanare prin intermediul unei interfețe țintă de 50 MHz. (Sursă imagine: SEGGER Microcontroller Systems)
Partea bună în ceea ce privește 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 clemei de fixare TC2050-CLIP-3PACK. Acestea permit conectarea unui depanator la placa de dezvoltare prin intermediul „plăcuței de cuie” (Figura 3). Este posibil să fie necesară adaptarea conectorului cu 20 de pini al J-Link la conectorul cu 10 pini al cablului TC-2050. O opțiune care poate fi utilizată în acest scop este adaptorul de ac cu 10 pini J-Link 8.06.04.
Figura 3: pe placa de dezvoltare B-L4S5I-IOT01A, ansamblul de cabluri Tag-Connect poate fi conectat printr-o amprentă a plăcii de circuit imprimat asemănătoare unui pat de cuie (dreapta). (Sursă imagine: STMicroelectronics)
Odată ce un dezvoltator a încheiat această cale pe partea hardware, poate utiliza instrumentele software pentru analizarea și depanarea aplicației sale.
Instrumente software profesionale de depanare
Există câteva instrumente software care funcționează destul de bine cu instrumentele SEGGER J-Link, care, în mod surprinzător, nu sunt furnizate de SEGGER. În cele ce urmează vom examina câteva dintre aceste instrumente gratuite și vom vedea cum pot dezvoltatorii să le folosească pe fiecare pentru a-și depana software-ul.
Primul este J-Scope. J-Scope este un instrument asemănător unui osciloscop care afișează valori variabile în timp. Dezvoltatorii pot monitoriza o singură variabilă sau câteva zeci de variabile. Cu toate acestea, pe măsură ce sunt monitorizate mai multe variabile, se pot preleva mai puține eșantioane înainte ca memoria tampon pentru eșantioane să se umple și să se piardă date.
Variabilele sunt selectate prin furnizarea către J-Scope a fișierului elf care este generat de compilator. Acesta furnizează locațiile din memorie care urmează să fie citite, iar dezvoltatorul poate apoi să își seteze ratele de eșantionare și să monitorizeze modul în care variabila sau variabilele se modifică în timp. În Figura 4 se prezintă un exemplu simplu de urmărire cu trei variabile.
Figura 4: J-Scope poate fi utilizat pentru a monitoriza variabilele prin J-Link în timp ce o aplicație rulează în timp real. (Sursă imagine: SEGGER Microcontroller Systems)
Următorul este Ozone. Ozone este o interfață de depanare și un analizor de performanță. Dezvoltatorii pot încărca fișierul elf în 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 faptul că pot să efectueze și urmărirea instrucțiunilor (dacă hardware-ul lor o acceptă) și să identifice afirmațiile de cod C și de asamblare care au fost executate. Acest lucru este deosebit de util pentru verificarea acoperirii codului în cazul testelor hardware-in-loop (HiL).
De asemenea, Ozone îi poate ajuta pe dezvoltatori să analizeze performanța sistemului lor (Figura 5) și să vizualizeze variabilele în timp. Acesta oferă capacități ca și J-Scope, dar într-o manieră mai integrată. Poate fi folosit chiar și pentru a monitoriza consumul de energie și pentru a sincroniza toate aceste evenimente într-un singur loc.
Figura 5: Ozone poate fi utilizat pentru a urmări variabilele prin J-Link în timp ce o aplicație rulează în timp real, pe lângă acoperirea codului și depanarea în funcție de RTOS. (Sursă imagine: SEGGER Microcontroller Systems)
Un al treilea instrument este SystemView. SystemView permite dezvoltatorilor să analizeze comportamentul sistemului RTOS în timpul execuției. Comutarea sarcinilor este înregistrată într-o memorie tampon de urmărire, iar apoi este raportată la SystemView prin intermediul depanatorului (Figura 5). Apoi, SystemView afișează aceste informații într-un mod care permite dezvoltatorului să vadă comutatoarele de context și să măsoare performanța sistemului său. Aceasta este și o modalitate excelentă de a vizualiza un sistem și de a găsi erori și alte probleme.
Figura 6: SystemView asigură o legătură cu un RTOS, ceea ce permite dezvoltatorilor să măsoare performanța sarcinilor și să vizualizeze ce face RTOS și când face anumite acțiuni. (Sursă imagine: SEGGER Microcontroller Systems)
Sfaturi și trucuri pentru depanarea unui sistem încorporat
Depanarea unui dispozitiv IoT necesită ca dezvoltatorii să aibă la dispoziție instrumentele potrivite atât în ceea ce privește hardware-ul, cât și software-ul. Ambele elemente trebuie să fie prezente dacă dezvoltatorii vor să reducă la minimum timpul pe care îl petrec cu depanarea. Pentru o depanare reușită, există câteva „sfaturi și trucuri” pe care dezvoltatorii ar trebui să le aibă în vedere, cum ar fi:
- Utilizarea unui 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 datele respective. Vitezele mai mici rezultă într-o sesiune de depanare mai lungă.
- Configurarea software-ului 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.
- Utilizarea instrumentelor de urmărire încă de la începutul dezvoltării. Acest lucru va permite dezvoltatorilor să monitorizeze performanța sistemului și să înțeleagă imediat modul în care modificările software-ului îl afectează.
- Utilizarea urmăririi instrucțiunilor sau a eșantionării contorului de program pentru a înțelege acoperirea codului de sistem în timpul testării. Erori vor exista în ramurile condiționate și în codul netestat.
- Utilizarea protocoalelor cu transfer rapid pentru a obține date din afara plăcii, cum ar fi bibliotecile de transfer în timp real (RTT).
Dezvoltatorii care urmează aceste „sfaturi și trucuri” vor descoperi că economisesc destul de mult timp și energie mentală atunci când încearcă să dezvolte un dispozitiv IoT.
Concluzie
Software-ul dispozitivelor IoT a devenit complex, dar acest lucru nu înseamnă că dezvoltatorii profesioniști sau cei pasionați de hobby-uri trebuie să se blocheze în mod constant la depanarea sistemelor. Utilizarea instrumentelor și a software-ului de dezvoltare profesionale poate oferi dezvoltatorilor informațiile de care au nevoie nu doar pentru a depana un sistem, ci și pentru a analiza și îmbunătăți performanța sistemelor lor. Investind în aceste instrumente, utilizatorii pot reduce considerabil timpul petrecut cu depanarea și pot crea proiecte funcționale pe care să le lanseze pe piață într-un interval de timp rezonabil.
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.




