Dom > Izložba > Sadržaj

Debugging ugrađenih sistema

Mar 08, 2019

Ugrađeno otklanjanje grešaka može se vršiti na različitim nivoima, u zavisnosti od dostupnih objekata. Različite metrike koje karakteriziraju različite oblike ugrađenog otklanjanja pogrešaka su: usporava li glavna aplikacija, koliko je blizu debagirani sustav ili aplikacija na stvarni sustav ili aplikaciju, koliko su ekspresivni okidači koji se mogu postaviti za otklanjanje pogrešaka (npr., pregled memorije kada se dostigne određena vrednost brojača programa), i šta se može proveriti u procesu otklanjanja grešaka (kao što je, samo memorija, ili memorija i registri, itd.).


Od najjednostavnijih do najsofisticiranijih mogu se grubo grupisati u sledeće oblasti:


Interaktivno otklanjanje grešaka rezidentom, koristeći jednostavnu ljusku koju pruža ugrađeni operativni sistem (npr. Forth i Basic)

Spoljno otklanjanje grešaka pomoću logovanja ili izlaza serijskog porta za praćenje operacija pomoću monitora u flashu ili pomoću poslužitelja za otklanjanje grešaka kao što je Remedy Debugger koji čak radi za heterogene višejezične sisteme.

In-circuit debugger (ICD), hardverski uređaj koji se povezuje sa mikroprocesorom preko JTAG ili Nexus interfejsa. Ovo omogućava da se rad mikroprocesora kontroliše izvana, ali je obično ograničen na specifične mogućnosti otklanjanja grešaka u procesoru.

Emulator u krugu (ICE) zamjenjuje mikroprocesor simuliranim ekvivalentom, pružajući potpunu kontrolu nad svim aspektima mikroprocesora.

Kompletan emulator obezbeđuje simulaciju svih aspekata hardvera, omogućavajući da se sve to kontroliše i modifikuje, i omogućava debagovanje na normalnom PC-u. Nedostaci su trošak i spora operacija, u nekim slučajevima i do 100 puta sporiji od konačnog sistema.

Za SoC dizajne, tipičan pristup je provjera i ispravljanje dizajna na FPGA prototipnoj ploči. Alati kao što je Certus koriste se za ubacivanje sondi u FPGA RTL koji čine signale dostupnim za posmatranje. Ovo se koristi za ispravljanje interakcija hardvera, firmvera i softvera na više FPGA-a sa mogućnostima sličnim logičkom analizatoru.

Softverski debugeri imaju koristi od toga što im nije potrebna nikakva modifikacija hardvera, ali moraju pažljivo kontrolisati ono što snimaju kako bi sačuvali vreme i prostor za skladištenje.

Osim ako nije ograničen na vanjsko otkrivanje grešaka, programer može obično učitati i pokrenuti softver kroz alate, pogledati kod koji se izvodi u procesoru i pokrenuti ili zaustaviti njegovo funkcioniranje. Pogled na kod može biti HLL izvorni kod, skupni kod ili mješavina oba.


Budući da je ugrađeni sistem često sastavljen od velikog broja elemenata, strategija otklanjanja pogrešaka može varirati. Na primer, otklanjanje grešaka u softverskom (i mikroprocesorskom) centričnom ugrađenom sistemu razlikuje se od debagovanja ugrađenog sistema gde se većina obrade vrši periferijama (DSP, FPGA i ko-procesor). Sve veći broj ugrađenih sistema danas koristi više od jednog jezgra procesora. Čest problem sa razvojem više jezgara je pravilna sinhronizacija izvršavanja softvera. U ovom slučaju, dizajn ugrađenog sistema može željeti provjeriti promet podataka na autobusima između procesorskih jezgri, što zahtijeva vrlo nisku razinu ispravljanja, na razini signala / sabirnice, s logičkim analizatorom, na primjer.