Dom > Izložba > Sadržaj

Ugrađeni sustav za ispravljanje pogrešaka

Mar 08, 2019

Ugrađeno otkrivanje pogrešaka može se izvoditi na različitim razinama, ovisno o dostupnim objektima. Različite metrike koje karakteriziraju različite oblike ugrađenog otklanjanja pogrešaka su: usporava li glavna aplikacija, koliko je debagirani sustav ili aplikacija u odnosu na stvarni sustav ili aplikaciju, koliko su izražajni okidači koji se mogu postaviti za ispravljanje pogrešaka (npr. pregled memorije kada se dostigne određena vrijednost brojača programa), i što se može ispitati u procesu otklanjanja pogrešaka (kao što je, samo memorija, ili memorija i registri, itd.).


Od najjednostavnijih do najsofisticiranijih mogu se grubo grupirati u sljedeća područja:


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

Vanjsko otkrivanje pogrešaka pomoću zapisivanja ili izlaza serijskog porta za praćenje operacija pomoću monitora u flashu ili poslužitelja za uklanjanje pogrešaka kao što je Remedy Debugger koji radi čak i za heterogene višejezične sustave.

Debugger u krugu (ICD), hardverski uređaj koji se povezuje s mikroprocesorom preko sučelja JTAG ili Nexus. To omogućuje da se rad mikroprocesora kontrolira izvana, ali je obično ograničen na specifične mogućnosti ispravljanja pogrešaka u procesoru.

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

Potpuni emulator osigurava simulaciju svih aspekata hardvera, dopuštajući da se sve to kontrolira i modificira, te omogućuje ispravljanje pogrešaka na normalnom računalu. Nedostaci su trošak i spora operacija, u nekim slučajevima i do 100 puta sporiji od konačnog sustava.

Za SoC dizajne, tipičan pristup je provjera i ispravljanje dizajna na FPGA prototipnoj ploči. Alati kao što su Certus se koriste za umetanje sonde u FPGA RTL koji čine signale dostupni za promatranje. To se koristi za ispravljanje interakcija hardvera, firmware-a i softvera na više FPGA-a s mogućnostima sličnim logičkom analizatoru.

Softverski debuggeri imaju prednost da ne trebaju nikakvu modifikaciju hardvera, već moraju pažljivo kontrolirati što snimaju kako bi sačuvali vrijeme i prostor za pohranu.

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


Budući da je ugrađeni sustav često sastavljen od velikog broja elemenata, strategija uklanjanja pogrešaka može varirati. Na primjer, ispravljanje pogrešaka softverskog (i mikroprocesorskog) centričnog ugrađenog sustava razlikuje se od uklanjanja pogrešaka ugrađenog sustava u kojem se većina obrade obavlja pomoću perifernih uređaja (DSP, FPGA i koprocesor). Sve veći broj ugrađenih sustava danas koristi više od jedne procesorske jezgre. Čest problem s razvojem više jezgri je ispravna sinkronizacija izvršavanja softvera. U ovom slučaju, dizajn ugrađenog sustava možda želi provjeriti promet podataka na autobusima između procesorskih jezgri, što zahtijeva ispravljanje pogrešaka na niskoj razini, na razini signala / sabirnice, s logičkim analizatorom, na primjer.