NIER Ingegneria è diventata Società Benefit →

LAUTERBACH: DEBUG E TEST DIRETTAMENTE ON TARGET.

Brief

Validare su scheda target il corretto funzionamento del sistema, verificando il caricamento dei dati nelle corrette aree di memoria, la sequenza di esecuzione delle funzioni software, il rispetto delle tempistiche di esecuzione; effettuare error injection sul codice compilato in esecuzione, senza apportare modifiche esplicite al codice sorgente rispetto la release ufficiale oggetto di test.

Sfide di progetto

La sfida principale è stata maturare competenze avanzate in attività di test e debug per sistemi Embedded, sia single core che multicore, adottando la strumentazione che rappresenta lo stato dell’arte per tale tipologia di attività, Lauterbach, che richiede solide competenze di base di analisi software per sistemi complessi.

Approfondire sia quest’ultima competenza che, al contempo, l’utilizzo dello strumento, apre nuove frontiere per NIER per poter addentrarsi nel software di un sistema target, senza alterare il codice sorgente e allo stesso tempo analizzando in profondità il binario compilato.

 

 

 

Soluzione

Nier ha allestito un test bench basato su Lauterbach, configurato con diversi componenti hardware e software interconnessi tra loro, in modo tale da avere a disposizione un sistema integrato di debug e test direttamente su target. I componenti principali sono:

 

  • Power Debug

 

  • Sonda di Debug

 

 

  • Power Trace

 

  • Software di debug Trace32 PowerView

La tipologia della piattaforma target, in funzione della compatibilità, stabilisce quali sonde/licenze software debbono essere integrate, mentre il Power Debug e il Power Trace sono dispositivi universali.

 

La piattaforma Lauterbach permette di effettuare le seguenti operazioni:

 

  • Trace: memorizzazione e analisi offline della sequenza di istruzioni eseguite a run time dal processore e dei tempi di esecuzione del software.
  • Debug: inserimento dinamico di breakpoint nel codice compilato su target, per verifiche puntuali sullo stato del software durante l’esecuzione.
  • Analisi di memoria: controllo/modifica a runtime dello stato e del contenuto delle aree di memoria del sistema (Flash, RAM, EEPROM, etc).
  • Analisi integrata delle operazioni dei singoli core in ambiente multicore
  • Analisi integrata di sistemi 2oo2

 

L’integrazione di queste funzionalità in una unica piattaforma permette di esaltare le tecniche di analisi white-box permettendo:

  • l’individuazione di problemi che si verificano (anche in modo non sistematico) durante l’esecuzione del software su sistema target;
  • l’identificazione di problemi relativi alla configurazione del software che non sempre si riescono a rilevare con altre metodologie meno robuste.

Fasi di esecuzione

FASE 1

Analisi delle soluzioni disponibili sul mercato

Fase particolarmente importante per selezionare la migliore soluzione per le necessità di progetto, ovvero possibilità di effettuare test e debug non invasivo direttamente su target.

FASE 2

Analisi Costi/Benifici delle diverse soluzioni

Uno dei fattori determinanti per la scelta è stata la riutilizzabilità della soluzione che è, de facto, uno standard in ambito automotive ed è largamente utilizzata anche in ambito ferroviario

 

 

 

FASE 3

Installazione della piattaforma e formazione con Lauterbach

È stata una fase determinante in quanto la tecnologia era nuova e per il suo utilizzo erano necessarie competenze specifiche. Sono stati eseguiti training e coaching con personale specializzato per acquisire padronanza di utilizzo anche di funzionalità complesse.

FASE 4

Utilizzo della piattaforma su progetti reali, in ambito ferroviario e automotive

 

Risultati ottenuti

L’utilizzo della piattaforma Lauterbach ha permesso di eseguire attività di debug funzionale sul software in una fase in cui quest’ultimo era ancora in via di sviluppo, identificando problematiche relative sia agli algoritmi software (presenza di rami di codice non raggiungibili, valorizzazione non corretta di variabili) che alla errata configurazione dei canali di comunicazione del sistema (errori nella lettura dei dati inviati tramite bus).

 

Utilizzato durante la fase di testing di un software già sviluppato e pronto per la validazione, ha permesso di verificare, ad esempio, il corretto caricamento dei dati di configurazione all’interno delle diverse aree di memoria (volatile e non) della scheda target. Ha permesso, inoltre, di individuare, tramite l’analisi offline di log esportati a runtime, la presenza di una problematica non deterministica legata alla durata dell’esecuzione di determinate funzioni che si manifestava solo in particolari condizioni di funzionamento.

La piattaforma Lauterbach rappresenta una nuova fondamentale risorsa che NIER applicherà a diversi domini, al fine di aumentare la capacità di rispondere alle richieste di mercati che diventano sempre più complessi ma per cui è necessario garantire un grado di affidabilità e sicurezza sempre più elevato.

 

 

 

 

Articoli collegati

Iscriviti alla Newsletter .