Home
Accesso / Registrazione
 di 

Debugging con ARM CoreSight

Debugging con ARM CoreSight

ARM CoreSight è un buon esempio di debug per i processori eterogenei multicore. Per elaborare i molteplici compiti all'interno di un sistema embedded, i processori che contengono tipi di core differenti sono sempre più utilizzati. Per poter eseguire correttamente il debug di tale sistema, devono essere soddisfatte due condizioni:

    1. Il processore multicore deve disporre di adeguati on-chip debug e "trace logic".
    2. L'ambiente di sviluppo deve supportare il debugging dei singoli cores e del sistema nel suo insieme, fornendo sofisticate funzionalità di analisi e verifica.

Questo articolo descrive come l'ambiente di sviluppo TRACE32 soddisfa questi requisiti insieme a on-chip debug CoreSight e la tecnologia trace.

ARM CoreSight, che cos'è?

CoreSight è il nome del debug on-chip e della tecnologia trace, nome dato appositamente da ARM ai processori multicore. CoreSight non è stato progettato come un blocco fisso logico, ma come un kit di costruzione che fornisce molti componenti diversi. In questo modo, il progettista del processore multicore può decidere quali funzioni realizzare per il debug e il trace. CoreSight offre una grande libertà di configurazione.

Il concetto del kit di costruzione di CoreSight ha un certo effetto sul tool di sviluppo utilizzato. Se il tool riconosce il processore e la configurazione dei componenti CoreSight, il debugging è molto più semplice. Per i nuovi processori, il concetto del kit di costruzione (Coresight) comporta che i sistemi di sviluppo (debugger) abbiano un elevato grado di flessibilità. Anche se le informazioni di configurazione del CoreSight possono essere lette dal processore, è comunque, spesso, necessario chiarire i dettagli dell'attuazione con il designer del processore.

Un processore eterogeneo multicore composto da core RISC ARM11 e Cortex-A e Ceva-X DSP è stato scelto per gli esempi che seguono.

CoreSight Debug

Per i processori con CoreSight, tutti i core vengono "debuggati" su un'interfaccia JTAG. Un ambiente di sviluppo per il nostro processore è costituito dai seguenti prodotti Trace32:

    1. Un modulo universale PowerDebug collegato all'host tramite USB o un'interfaccia Ethernet
    2. Un cavo di debug per le architetture ARM11, Cortex-A e Ceva-X
Debug ARM Coresight

Nei processori eterogenei multicore, i singoli core, di solito, lavorano ai loro task in modo relativamente indipendente l'uno dall'altro. Ha quindi senso di avviare un'instance separata Trace32 per eseguire il debug di ogni core.

Per verificare che i core funzionano correttamente insieme, deve essere possibile eseguire il debug attraverso i core. A tal fine, CoreSight fornisce un sistema di cross-trigger che permette il debug synchronous di tutti i core: se un core si ferma ad un breakpoint, gli altri core vengono stoppati in modo sincrono. Questo significa che l'utente può visualizzare il contesto dei core in qualsiasi posto selezionato nel programma. Oltre a questa funzione di base per il debugging multicore, TRACE32 è in grado di fornire altre funzioni utili di debug a seconda della configurazione CoreSight.

Le caratteristiche del TRACE32 per il debug CoreSight

  • Supporto flessibile per i processori multicore con CoreSight; Lauterbach offre debug per tutti i core ARM/Cortex e per una vasta gamma di DSP
  • Debug attraverso l'interfaccia JTAG e la porta Serial Wire Debug (SWD)
  • Accesso runtime alla memoria fisica e ai registri periferici
  • Debug sincrono di tutti i core e di tutte le periferiche
  • La modalità di power-down di un core non ha alcun effetto sul debug degli altri core

CoreSight Trace

Le informazioni di trace di tutti i cores confluiscono in un'interfaccia comune. Sotto CoreSight, un componente che genera le informazioni di trace può essere assegnato ad ogni core. Per il nostro modello di processore, questi sono i seguenti componenti:

  • ARM ETM per ARM11 e Cortex-A
  • Ceva-X ETM per Ceva-X

Le caratteristiche del TRACE32 per CoreSight-Trace

  • Supporto flessibile per i processori multicore con CoreSight; TRACE32 supporta l'analisi delle informazioni di trace per ARM ETM ed una vasta gamma di DSP ETM
  • Trace dei cicli del bus AMBA AHB
  • Trace dei dati emessi dall'applicazione con l'aiuto dell' Instrumentation Trace Macrocell (ITM)
  • Analisi di runtime

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Eleonora29

Conosco molto bene

Conosco molto bene l'architettura arm, prima per studio e poi per tirocinio, si sono una stagista. Nella azienda dove lavoro per il debug si utilizzano prodotti di un'altra casa basati sul jtag. Non conoscevo il trace32 e nemmeno la possibilità, evidentemente data da arm, di fare debug con il sistema coresight. Mi avete dato motivo di curiosità e sicuramente approfondirò a breve esplorando le possibilità.

ritratto di Giovanni Giomini Figliozzi

core sight in effetti è uno

core sight in effetti è uno "strumento" di debug fenomenale! se non sbaglio occupa solo 6 pin per il collegamento, e permette di tener conto in tempo reale dell'esecuzione delle istruzioni che vengono svolte sul processore fino a 200MHz. Non è questa la velocità massima di un core ARM, ma è abbastanza elevata da svolgere le operazioni di debug su moltissime piattaforme.
Ovviamente coresight non è implementato nei processori su package con pochi pin, perchè se già sono pochi, se ne escludono anche 6, e non è conveniente. Si trova però se non sbaglio in tutti i processori di fascia medio-alta

ritratto di Emanuele

Probabilmente non conoscevi

Probabilmente non conoscevi Coresight perchè annunciata solo da circa un anno da ARM e non operativa su alcuni micro di fascia bassa, come ARM7.
Ma penso in futuro se ne sentirà parlare molto, soprattutto con il diffondersi dei dual-core.

ritratto di slovati

ARMCoreSight

CoreSight rappresenta in pratica la tecnologia standard utilizzata per eseguire il debug ed il trace sui System-on-Chip (SoC) basati su architettura ARM. CoreSight permette di semplificare il debug sia su sistemi a single core che su sistemi SoC complessi multi-core. L'architettura CoreSight è di tipo modulare, molto flessibile, basata su un insieme di macrocelle configurabili a seconda delle applicazioni a cui è rivolto il singolo SoC (l'operazione di "configurazione" viene eseguita dal progettista hardware in fase di definizione del SoC). Tra le applicazioni ricordiamo la telefonia mobile, i tablet, i sistemi wireless (router, access point, ecc.), il networking in generale ed il settore dei videogiochi. Tra i sistemi che adottano questa architettura ricordiamo i processori delle serie TI OMAP4, ARM Cortex-A9, Cortex-R4.
I moduli appartenenti all'architettura CoreSight sono diversi, uno in particolare, il CoreSight SerialWire, mi ha incuriosito molto. Questo sistema consente infatti di eseguire il debug utilizzando solamente 2 pin, ed è equivalente (ma con prestazioni superiori) rispetto alla tradizionale interfaccia JTAG (che utilizza 5 o 6 pin). Uno dei 2 pin è di tipo bidirezionale con codifica Manchester e trasmette sia il clock che i dati su un singolo filo. L'altro filo serve a fornire un clock dall'esterno.
CoreSight è stato recentemente arricchito con l'aggiunta di 2 nuove macrocelle: il System Trace Macrocell (STM) ed il Trace Memory Controller (TMC). L'STM è stato progettato per eseguire il tracing sia a livello software che a livello hardware. I dati acquisiti da STM vengono raccolti e posti in un apposito trace buffer, che può risiedere sia sul chip che al suo esterno. TMC è invece una variante con funzionalità aggiuntive del sistema di trace della memoria disponibile in precedenza.

ritratto di Giovanni Giomini Figliozzi

Non sapevo che ci fosse anche

Non sapevo che ci fosse anche una versione che funziona usando solo 2 pin! fico!

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 8 utenti e 62 visitatori collegati.

Ultimi Commenti