EMB 91

EMBEDDED 91 • FEBBRAIO • 2024 56 SOFTWARE | FUNCTIONAL SAFETY L’ analisi di copertura del codice con metrica MC/ DC (Modified Condition / Decision Coverage) è consi- gliata nella maggior parte degli standard di sicurezza per testare adeguatamente il software che richiede un elevato livello di affidabilità. Lauterbach ha presentato per la prima volta la sua soluzione per la copertura MC/ DC nel 2018. Nella soluzione iniziale l’approccio si basava sulla copertura MC/DC ottenuta esclusivamente dal trac- ciamento del flusso del programma. L’obiettivo era sup- portare la gamma più ampia possibile di architetture dei core e di protocolli di tracciamento. Tuttavia, l’esperien- za pratica ha dimostrato che è necessario estendere que- sto approccio con alcuni strumenti per ottenere risultati più completi. Lauterbach chiama la soluzione estesa: co- pertura MC/DC multimodale in TRACE32. La copertura multimodale comprende tre tipi di strumentazione: nes- suna strumentazione, strumentazione mirata e strumen- tazione completa. Quest’ultima viene offerta solo come fallback. Per la strumentazione, l’obiettivo era garantire un ingombro minimo della memoria e un sovraccarico di runtime quasi nullo. Lo scopo di questo articolo è presentare la copertura MC/ DC multimodale in TRACE32. Il punto di partenza è an- cora il tracciamento del flusso del programma. Iniziamo quindi con una breve introduzione a questa tecnologia e riassumiamo le sfide che hanno motivato la nascita di questa estensione. Copertura MC/DC mediante tracciamento del flusso di programma Il punto di partenza per l’analisi della copertura MC/DC è la registrazione della traccia del flusso del programma eseguito (Fig. 1). Una porta di tracciamento parallela o seriale off-chip è sicuramente la migliore per registrare una quantità sufficientemente grande di dati per l’ana- lisi. Ma anche una grande memoria di traccia sul chip o la registrazione di una traccia effettuata in un simulato- re di set di istruzioni TRACE32 offrono una buona base. Per un’analisi completa della copertura MC/DC tramite il tracciamento del flusso del programma, devono essere soddisfatti quattro criteri. Criterio n. 1: TRACE32 deve conoscere la struttura e la posizione delle decisioni all’interno del codice sorgente. Poiché i dettagli relativi a una decisione non sono inclu- si nelle informazioni di debug generate dal compilatore, Lauterbach offre a questo scopo il proprio strumento a riga di comando, basato su Clang, denominato t32cast. Il Copertura MC/DC multimodale in TRACE32 La sicurezza funzionale (functional safety) è un requisito fondamentale per i sistemi embedded critici per la sicurezza. Tra i test necessari per la certificazione secondo i diversi standard di sicurezza è previsto il Code Coverage. Da anni Lauterbach fornisce una soluzione per misurare il Code Coverage basata sul real-time trace senza strumentazione software. Ora questa soluzione viene migliorata con il Multi-Mode MC/DC Coverage Andrea Martin Technical Writer Lauterbach Lauterbach migliora il sistema Trace Based Code Coverage per la sicurezza funzionale

RkJQdWJsaXNoZXIy Mzg4NjYz