5. maja, 2021

Vodnik po orodjih in tehnikah za iskanje in odpravljanje napak v napravah IoT

Revija logo digikey 300x150 - Vodnik po orodjih in tehnikah za iskanje in odpravljanje napak v napravah IoTRazvoj ugnezdenih sistemov, kjer morata programska in strojna oprema delovati usklajeno, je postal izjemno kompleksen in poln izzivov, celo pri napravah interneta stvari (Internet of Things – IoT), ki se zdijo najbolj preproste. Pravzaprav takrat, ko gre nekaj narobe (kar je neizogibno), iskanje in odpravljanje napak običajno ni končano v nekaj urah, ampak lahko traja tedne ali mesece. Takšne zamude povečajo stroške razvoja, preprečijo pravočasno lansiranje izdelka na trg, povzročajo zamude v proizvodnih načrtih ter porušijo dobavne verige in poslovne načrte.

Za skrajšanje časa, namenjenega iskanju in odpravljanju napak, in uspešno sledenje načrtu projekta je najboljše, če uporabimo kombinacijo orodij za iskanje in odpravljanje napak strojne opreme ter prosto dostopno programsko opremo, da pridobimo vpoglede v to, kako deluje sistem in kje prihaja do napak. Tako profesionalcem kot amaterjem prava orodja torej izjemno pomagajo dokončati ta opravila hitro in pravilno.

V tem članku se bomo ukvarjali z razvojnimi orodji in programsko opremo, ki jih je mogoče uporabiti za iskanje in odpravljanje napak ter analizo delovanja IoT naprave. Kot primer IoT naprave bo uporabljena razvojna plošča podjetja STMicroelectronics, za razumevanje sistema in odpravljanje napak pa bomo uporabili orodja in programsko opremo podjetja SEGGER Microcontroller Systems. Obravnavali bomo tudi več namigov in nasvetov, kako skrajšati čas, ki je potreben za iskanje in odpravljanje napak, ter dokončati projekt IoT v skladu z načrtom.

Tipična IoT naprava, ki potrebuje odpravljanje napak

IoT naprave so postale razširjene v skoraj vseh industrijskih panogah – od nadzora pametnih domov do spremljanja za industrijsko uporabo. Kljub raznolikosti načinov uporabe obstaja več tipičnih komponent, ki jih ima posamezna IoT naprava. Mednje sodijo:
• Mikrokontroler
• Radio za povezljivost
• Senzorji

Razvijalecne bo želel sam razvijati lastne plošče, da bi raziskal tehnike odpravljanja napak ali preskušal različne dele kode aplikacije. To preprosto vzame preveč časa. Namesto tega je bolje uporabiti cenovno ugodno razvojno ploščo, kot je IoT B-L4S5I-IOT01A Discovery Kit for IoT Node (komplet za odkrivanje za vozlišča) podjetja STMicroelectronics. Vsebuje namreč skorajda vse, kar je običajno nameščeno na tipični IoT napravi (slika 1).

Figure 1 1 300x281 - Vodnik po orodjih in tehnikah za iskanje in odpravljanje napak v napravah IoT

Slika 1: Komplet B-L4S5I-IOT01A Discovery Kit for IoT Node podjetja STMicroelectronics vsebuje vse komponente, ki jih običajno potrebuje IoT naprava. (Vir slike: STMicroelectronics)

Plošča vključuje STM32L4S5VIT6, mikrokontroler znamke ARM Cortex-M4, ki deluje pri 120 megahercih (MHz). Podporo zagotavljajo do 2 megabajta (MB) Flasha in 640 kilobajtov (KB) RAM-a. Za namen tega prikaza je pomembno, da ima plošča vključen Wi-Fi in množico senzorjev, s katerimi je mogoče hitro zgraditi testno IoT napravo.

Profesionalna orodja strojne opreme za odpravljanje napak

Skoraj vsaka razvojna plošča je opremljena z JTAG/SWD vmesnikom, tako da razvijalcem ni treba najemati svojih programerjev. Namesto tega lahko začnejo uporabljati razvojno ploščo takoj, ko jo vzamejo iz škatle. Čeprav je to odlično za tržne namene, pa ni tako dobro za pravi inženiring, saj so iskalniki napak, ki so vključeni v ploščo, pogosto skrčene različice z omejitvami, npr. glede števila razpoložljivih prekinitvenih točk in hitrosti prenosa vmesnika. Neizkušenim se te omejitve morda ne zdijo zelo pomembne, vendar neomejeno število prekinitvenih točk pomeni, da jih ni treba stalno omogočati in onemogočati, visoke hitrosti prenosa pa so potrebne za sledenje aplikaciji (več o sledenju v razdelku o orodjih programske opreme).

Na voljo je več različnih orodij, ki zagotavljajo profesionalno izkušnjo iskanja in odpravljanja napak, vendar so orodja sama po sebi samo polovica rešitve. Orodja mora namreč podpirati dobra programska oprema. Eno od kompletov orodij, ki izstopa tako z vidika strojne kot programske opreme, je serija SEGGER J-Link. V njej obstaja različica iskalnika napak za skoraj vsakega razvijalca, od študentov in entuziastov do resnih profesionalcev.

Obstajata dva modela, ki sta se po izkušnjah izkazala za najbolj uporabna za splošnega razvijalca: J-Link Base in J-Link Ultra+ (slika 2). Kar se tiče oblike, sta obe enoti identični, vendar J-Link Ultra+ omogoča razvijalcem večje hitrosti prenosa na RAM (3 MB/s v primerjavi z 1,0 MB/s) in večjo hitrost vmesnika SWD (100 MHz namesto 30 MHz). Večje hitrosti pomenijo ključno razliko, ko želi razvijalec slediti svoji aplikaciji in pridobiti vpoglede v njeno delovanje in delovanje operacijskega sistema v realnem času (RTOS) ter odpravljati napake.

Pri J-Link enoti in B-L4S5I-IOT01A razvojni plošči je dobra stran to, da ju je mogoče povezati s kablom Tag-ConnectTC2050-IC-NL in zadrževalno sponko TC2050-CLIP-3PACK. Na ta način je mogoče iskalnik napak priklopiti na razvojno ploščo preko ploščice s priključki (slika 3). Lahko se zgodi, da je treba prilagoditi 20-pinski priključek enote J-Link na 10-pinski priključek na kablu TC-2050. Kot eno od možnosti za ta namen je mogoče uporabiti 8.06.04 J-Link 10-Pin Needle Adapter.

Ko razvijalec zapre to pot z vidika strojne opreme, lahko uporabi orodja programske opreme za analizo svoje aplikacije in odpravljanje napak.

Profesionalna orodja programske opreme za odpravljanje napak

Obstaja kar nekaj orodij programske opreme, ki delujejo precej dobro z orodji SEGGER J-Link, ki pa jih presenetljivo ne zagotavlja SEGGER. V nadaljevanju si bomo ogledali nekaj teh brezplačnih orodij in načine, kako jih lahko razvijalci uporabijo za odpravljanje napak v svoji programski opremi.

Prvo orodje je J-Scope. J-Scope je orodje, podobno osciloskopu, ki prikazuje vrednosti spremenljivk v določenem časovnem obdobju. Razvijalci lahko spremljajo eno spremenljivko ali več deset spremenljivk. Vendar pa je treba upoštevati, da je ob spremljanju več spremenljivk mogoče vzeti manj vzorcev, preden je prekoračen medpomnilnik za vzorce in so podatki izgubljeni.

Spremenljivke so izbrane tako, da je v J-Scope dodana ELF datoteka, ki jo ustvari prevajalnik. Tako dobi mesta pomnilnika, ki jih je treba prebrati, razvijalec pa lahko nato nastavi svoje frekvence vzorčenja in spremlja, kako se spremenljivke spreminjajo skozi čas. Preprost primer sledenja trem spremenljivkam je prikazan na sliki 4.

Figure 4 1 300x300 - Vodnik po orodjih in tehnikah za iskanje in odpravljanje napak v napravah IoT

Slika 4: J-Scope je mogoče uporabiti za spremljanje spremenljivk preko enote J-Link, medtem ko se aplikacija izvaja v realnem času. (Vir slike: SEGGER Microcontroller Systems)

Naslednje orodje je Ozone. Ozone je vmesnik za iskanje in odpravljanje napak ter analizator delovanja. Razvijalci lahko naložijo svojo ELF datoteko v orodje in izvedejo odpravljanje napak na ravni vira. Določijo lahko prekinitvene točke in posodobijo svojo kodo. Posebno uporabna značilnost za razvijalce je, da lahko izvedejo tudi sledenje navodilom (če to podpira njihova strojna oprema) in identificirajo, kateri zbiri in stavki v jeziku C so bili izvršeni. To je zlasti koristno za preverjanje obsega delovanja kode pri testiranju strojne opreme v zanki (HiL).

Ozone lahko razvijalcem pomaga tudi pri analizi učinkovitosti delovanja sistema (slika 5) in vizualizaciji spremenljivk skozi čas. To omogoča podobne zmogljivosti kot J-Scope, a na bolj integriran način. Uporabiti ga je mogoče celo za spremljanje porabe energije in sinhronizacijo vseh teh dogodkov hkrati na enem mestu.

 

Tretje orodje je SystemView. SystemView omogoča razvijalcem, da analizirajo delovanje izvajanja operacijskega sistema v realnem času (RTOS). Preklapljanje med opravili se evidentira v medpomnilniku za sledenje, nato pa iskalnik napak te podatke posreduje v SystemView (slika 5). SystemView prikaže te informacije na tak način, da si razvijalec lahko ogleda kontekstne preklope in izmeri delovanje sistema. To je tudi odlična možnost za vizualizacijo sistema ter odkrivanje napak in drugih težav.

Namigi in nasveti za iskanje in odpravljanje napak v ugnezdenem sistemu

Za iskanje in odpravljanje napak v IoT napravi razvijalci potrebujejo prava orodja tako z vidika strojne kot tudi programske opreme. Vsak od obeh delov mora biti na svojem mestu, če želijo razvijalci kar se da skrajšati čas, ki ga porabijo za iskanje in odpravljanje napak. Za uspešno odpravljanje napak obstaja več »namigov in nasvetov«, ki bi jih razvijalci morali upoštevati, npr.:
• Uporabite profesionalni iskalnik napak, ki maksimira hitrost prenosa vmesnika. Količina uporabnih podatkov, ki jih je mogoče pridobiti iz sistema, bo odvisna od tega, kako hitro jih je mogoče sprejemati. Pri nižjih hitrostih traja iskanje in odpravljanje napak dlje časa.
• Nastavite programsko opremo za odpravljanje napak že zgoraj v razvojnem ciklu. Razvijalci ne bi smeli čakati, da pride do težave, in šele takrat pripraviti svojih orodij za iskanje in odpravljanje napak.
• Uporabljajte orodja za sledenje od začetka razvoja. Tako bodo razvijalci lahko spremljali delovanje sistema in bodo takoj razumeli, kako nanj vplivajo spremembe programske opreme.
• Izkoristite sledenje navodilom ali vzorčenje števca programov za razumevanje obsega delovanja kode med testiranjem. Napake se bodo pojavile v nepreskušenih pogojnih razvejitvah in kodi.
• Izkoristite hitre protokole za prenos, da pridobite podatke s čipa, na primer knjižnice prenosa v realnem času (RTT – Real-Time Transfer).

Razvijalci, ki upoštevajo te namige in nasvete, bodo prihranili kar nekaj časa in živcev, ko bodo poskušali razviti napravo IoT.

Zaključek

Programska oprema za IoT naprave je postala kompleksna, a to ne pomeni, da se morajo profesionalni ali amaterski razvijalci stalno ukvarjati z iskanjem in odpravljanjem napak v svojih sistemih. Z uporabo profesionalnih razvojnih orodij in programske opreme lahko razvijalci pridobijo vpoglede, ki niso potrebni zgolj za odpravljanje napak v sistemu, temveč tudi za analizo in izboljšanje delovanja sistemov. Uporabniki, ki investirajo v ta orodja, lahko izjemno skrajšajo čas, ki ga porabijo za iskanje in odpravljanje napak, ter tako poskrbijo, da njihovi projekti začnejo delovati in pridejo na trg v razumnem časovnem okviru.

Avtor: Rolf Horn
2021/296