EMB_85

EMBEDDED 85 • SETTEMBRE • 2022 63 HW DEBUG | SOFTWARE sotto forma di tool di sviluppo correlato all’hardwa- re, un debugger deve essere utilizzato sempre più in un’ampia gamma di situazioni legate allo sviluppo software. Il debugger rappresenta ancora il collega- mento con l’hardware target effettivo attraverso in- terfacce di debug standard, utilizzato allo scopo di sviluppare e collaudare il software embedded il “più vicino possibile” all’hardware effettivo. Oltre al sem- plice interfacciamento con l’hardware target, un de- bugger fornisce funzionalità di debug più avanzate, incluse quelle di test. Qui lo sviluppatore ha la possi- bilità di eseguire il trace (tracciamento) del software in esecuzione. Risulta quindi possibile ispezionare lo stato del programma e arrestare la sua esecuzione al verificarsi di determinate condizioni. Tali operazioni vengono eseguite con un impatto minimo (se non ad- dirittura nullo) sul software che deve essere collau- dato. Le soluzioni di debug professionale consentono inoltre la registrazione dei processi che avvengono nel software in tempo reale (tracing), la registrazione dei tempi di esecuzione dell’ordine dei cicli di clock, oltre alla valutazione delle parti elaborate del software che sono rilevanti per il collaudo (copertura del codice). Per garantire all’utente la possibilità di utilizzare in modo flessibile tutte queste funzionalità, i produttori di debugger forniscono interfacce API generiche che consentono l’integrazione di questi tool nel processo di sviluppo e collaudo dell’utente stesso (Fig. 4). Tali interfacce devono essere adatte per affrontare una pluralità di compiti (sviluppo, collaudo, verifica e va- lidazione delle componenti hardware e software). Lo standard in questo caso è il supporto dei linguaggi di programmazione (C, C++, C#, Java etc.) e scripting (Python e così via) per il “controllo remoto” del tool di sviluppo da parte di un’altra applicazione (anch’es- sa specifica dell’utente). Fondamentalmente, parti del processo possono essere automatizzate durante sia lo sviluppo sia il collaudo. Oltre a ciò, gli attuali debugger forniscono anche le funzionalità cosiddette ““mini-HIL” (hardwa- re-in-the-loop, misure e moduli di stimolo per il test) per generare o misurare segnali digitali e analogici, mentre contemporaneamente registrano e mettono in correlazione l’esecuzione del programma. Ciò consen- te di eseguire un collaudo molto prossimo alla realtà nelle fasi iniziali dello sviluppo software. Tutto viene realizzato all’interno di un ambiento noto, in tempi brevissimi (on-the-fly) e senza dover apprendere una nuova metodologia. Un tipico caso d’uso di queste interfacce flessibili per l’automazione del test è l’integrazione continua (CI – Continuous Integration). Essa supporta lo svilup- po e il test di software agile/distribuito integrando le modifiche o il codice appena generato dagli sviluppa- Fig. 4 – Ora i debuggermettono a disposizione API che realizzano processi di sviluppo e collaudo con transizioni uniformi e automatizzate tra i vari tool

RkJQdWJsaXNoZXIy Mzg4NjYz