Casa > Exposició > Contingut

Depuració del sistema incrustat

Mar 08, 2019

La depuració integrada es pot realitzar a diferents nivells, depenent de les instal·lacions disponibles. Els diferents indicadors que caracteritzen les diferents formes de depuració integrada són: fa més lent l’aplicació principal, quina és la proximitat del sistema o l’aplicació depurada al sistema o aplicació real, quins expressius són els disparadors que es poden establir per a la depuració (per exemple: inspeccionar la memòria quan s'arriba a un determinat valor del comptador de programes) i què es pot inspeccionar en el procés de depuració (com ara només la memòria o la memòria i els registres, etc.).


De les més simples a les més sofisticades, es poden agrupar aproximadament en les següents àrees:


Depuració de residents interactius, utilitzant el shell senzill proporcionat pel sistema operatiu incrustat (per exemple, Forth i Basic)

Depuració externa mitjançant sortida de registre o de port sèrie per rastrejar l'operació utilitzant un monitor en flash o utilitzant un servidor de depuració com el Remedy Debugger que fins i tot funciona per a sistemes heterogenis multicore.

Un depurador en circuit (ICD), un dispositiu de maquinari que es connecta al microprocessador mitjançant una interfície JTAG o Nexus. Això permet controlar externament el funcionament del microprocessador, però normalment es limita a capacitats de depuració específiques del processador.

Un emulador en circuit (ICE) substitueix el microprocessador amb un equivalent simulat, i proporciona un control total sobre tots els aspectes del microprocessador.

Un emulador complet proporciona una simulació de tots els aspectes del maquinari, que permet controlar i modificar tot i permetre la depuració en un PC normal. Els desavantatges són la despesa i el funcionament lent, en alguns casos fins a 100 vegades més lent que el sistema final.

Per als dissenys de SoC, l’enfocament típic és verificar i depurar el disseny en un tauler de prototipus FPGA. Les eines com Certus s’utilitzen per inserir sondes en el FPGA RTL que fan disponibles els senyals per a l’observació. S'utilitza per a depurar les interaccions de maquinari, microprogramari i programari a través de múltiples FPGA amb capacitats similars a un analitzador lògic.

Els depuradors només de programari tenen l’avantatge que no necessiten cap modificació de maquinari, sinó que han de controlar acuradament el que registren per tal de conservar el temps i l’espai d’emmagatzematge.

Llevat que es restringeixi a la depuració externa, el programador normalment pot carregar i executar programari a través de les eines, veure el codi que s'executa al processador i iniciar o aturar el seu funcionament. La vista del codi pot ser com a codi font HLL, codi de muntatge o barreja de tots dos.


Com que un sistema incrustat sovint es compon d’una gran varietat d’elements, l’estratègia de depuració pot variar. Per exemple, la depuració d’un sistema incrustat cèntric de programari (i microprocessador) és diferent de la depuració d’un sistema incrustat on la major part del processament s’efectua per perifèrics (DSP, FPGA i co-processador). Un nombre creixent de sistemes incrustats avui en dia utilitzen més d'un nucli de processador únic. Un problema comú amb el desenvolupament de múltiples nuclis és la sincronització adequada de l’execució del programari. En aquest cas, el disseny del sistema incrustat pot voler comprovar el trànsit de dades als busos entre els nuclis de processador, que requereix una depuració molt baixa, a nivell de senyal / bus, amb un analitzador lògic, per exemple.