Debugging ARM Cortex™- M con µTrace

Click here to load reader

  • date post

    25-Feb-2016
  • Category

    Documents

  • view

    48
  • download

    4

Embed Size (px)

description

Debugging ARM Cortex™- M con µTrace. I microcontrollori ARM Cortex ™- M sono ricchi di funzionalità di debug e trace estremamente utili, ma poco note e quindi poco utilizzate. Quali risorse Coresight sono più utili per il debugging ? - PowerPoint PPT Presentation

Transcript of Debugging ARM Cortex™- M con µTrace

Presentation Title

Debugging ARM Cortex-M conTraceI microcontrollori ARM Cortex-M sono ricchi di funzionalit di debug e trace estremamente utili, ma poco note e quindi poco utilizzate. Quali risorse Coresight sono pi utili per il debugging?Cosa sono il Serial Wire Viewer o il System Trace?Come funziona il Program Trace e che vantaggi ottengo?Quali connettori bene prevedere nel mio progetto?Lo scopo del seminario dare una panoramica delle funzionalit disponibili e dimostrare con live demo come sono supportate dai sistemi Lauterbach e quali vantaggi si ottengono con Trace.

Maurizio Menegotto relatore slides

Marco Ferrario relatore live demowww.lauterbach.com Funzionalit di debug e trace nei Cortex-MAdvanced debuggingSystem & Data TraceProgram TraceLauterbach TraceQ&AAgenda

LiveDemo

LiveDemo

LiveDemo

Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

N / 52 2Funzionalit di debug e trace nei Cortex-MAdvanced debuggingSystem & Data TraceProgram TraceLauterbach TraceQ&AAgenda

Cortex-MchipTPIUSWV, SWODWT, ITMETM, ETBSWD, JTAGDAPDebugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

N / 52 3Funzionalit di debug e trace nei Cortex-MLa tecnologia CoreSight di ARM fornisce funzionalit di debug e trace che facilitano il debug di un intero system-on-chip.CoreSight una collezione di componenti hardware che possono essere implementati nel design di un chip. In un Cortex-M si possono trovare molte risorse:Debug Access Port (DAP)Serial Wire Debug Port (SW-DP)Instrumentation Trace Macrocell (ITM)Trace Port Interface Unit (TPIU)Embedded Trace Macrocell (ETM)Embedded Trace Buffer (ETB)Serial Wire Viewer (SWV)Serial Wire Output (SWO)Si ma quali risorse Coresight sono pi utili per il debugging?

N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Componenti CoreSight Cortex-M: DAPCoresight Cortex-M MicrocontrollerDAPDebugAccessPort

SWDSerial WireDebug (SWD)2TDO TDI TMSTCK TRST5Debug AccessJTAGDAP (Debug Access Port) permette laccesso del debugger allintero system-on-chip.E possibile collegare il debugger a DAP in modo JTAG standard oppure in modo Serial Wire Debug (SWD). Le due modalit sono tra loro alternative: in modo SWD alcuni pin JTAG cambiano significato, gli altri pin JTAG sono liberi per altre funzioni.Tramite questa debug port si implementano le funzionalit fondamentali quali:Controllo del core in go/break/step Accesso r/w alla memoria e ai registriImpostazione di breakpoint e triggerFlash programmingXOR N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Componenti CoreSight Cortex-M: DWT & ITMCoresight Cortex-M MicrocontrollerDWTDataWatchpoint & Trace unitSWVSerial WireOutput (SWO)4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]ApplicationdriveninstrumentationmessagesSerialWireViewerDataMessagesTrace PortInterface UnitDAPDebugAccessPort

SWDITMInstrumentation Trace MacrocellSerial WireDebug (SWD)12TDO TDI TMSTCK TRST5Debug Access1JTAGDWT permette il trace di dati (variabili) e di dati o eventi hardware interni al core (Interrupts, PC-Sampler, BMC).I data messages possono anche essere generati dal programma stesso scrivendo sui registri ITM.Il modulo ITM trasmette i dati ad una trace port che pu essere parallela (TPIU) o seriale (SWV). Nota: SWV richiede che la debug port sia in modo SWDXORXOR& N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Componenti CoreSight Cortex-M: ETMCoresight Cortex-M MicrocontrollerDWTDataWatchpoint & Trace unitSWVSerial WireOutput (SWO)4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]ApplicationdriveninstrumentationmessagesSerialWireViewerProgramFlowDataMessagesTrace PortInterface UnitETMEmbeddedTrace Macrocell

DAPDebugAccessPort

SWDITMInstrumentation Trace MacrocellSerial WireDebug (SWD)12TDO TDI TMSTCK TRST5Debug Access1JTAGXORXOR&ETM implementa il program trace.Il program trace molto utile per il debug e per lanalisi del comportamento run-time e real-time dellapplicazione.

Il program trace pu essere trasmesso allesterno tramite la TPIU (4 pin trace port). Oppure N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Componenti CoreSight Cortex-M: ETM & ETBCoresight Cortex-M MicrocontrollerDWTDataWatchpoint & Trace unitSWVSerial WireOutput (SWO)4TPIUApplicationdriveninstrumentationmessagesSerialWireViewerDataMessagesTrace PortInterface UnitDAPDebugAccessPort

SWDITMInstrumentation Trace MacrocellSerial WireDebug (SWD)12TDO TDI TMSTCK TRST5Debug Access1JTAGXORXOR&oppure se la porta TPIU non ce, il program trace viene registrato in un piccolo trace buffer on-chip chiamato ETB.ETB pu anche registrare il data trace del modulo ITM.Il trace buffer ETB viene letto dal debugger via DAP (JTAG o SWD).ETBEmbedded Trace BufferETMEmbeddedTrace Macrocell

XORProgramFlowTrace ClockTRACECLKTrace DataTRACED[0..3] N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Configurazioni CoreSight per Cortex-M 1/2E importante sapere che non tutti i chip Cortex-M includono tutti i moduli CoreSight. Ogni modulo infatti ha un costo in termini di spazio sul silicio, di pin richiesti, di consumo energetico.Una configurazione ideale per le migliori prestazioni di debug, data trace e program trace potrebbe essere questa qui sotto raffigurata.Coresight Cortex-MMicrocontrollerDWT4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]ApplicationdriveninstrumentationmessagesProgramFlowDataMessagesDAPITMTDO TDI TMSTCK TRST5Debug Acces1JTAGETMConfigurazione CoreSight ricca con utilizzo di tutti i pin (5+4+1) N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

9Configurazioni CoreSight per Cortex-M 2/2Coresight Cortex-MMicrocontrollerDWTSWVSerial WireOutput (SWO)ApplicationdriveninstrumentationmessagesDataMessagesDAPSWDITMSerial WireDebug (SWD)12Debug AccessCoresight Cortex-MMicrocontrollerDWT4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]ApplicationdriveninstrumentationmessagesProgramFlowDataMessagesDAPITMTDO TDI TMSTCK TRST5Debug Acces1JTAGETMPurtroppo nei chip con package ridotto la TPIU viene spesso sacrificata.Se ETB disponibile si pu registrare il program trace nel buffer on-chip e trasmettere il data trace via SWV. Ma se il chip anche a basso consumo o se deve costare molto poco, il designer potrebbe anche aver eliminato ETM e ETB.Si ha in questi casi una configurazione minimale con data trace a basse prestazioni e nessun program trace, o addirittura una configurazione solo DAP.Configurazione CoreSight povera con utilizzo minimo dei pin (2+1)Configurazione CoreSight ricca con utilizzo di tutti i pin (5+4+1) N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

10Funzionalit di debug e trace nei Cortex-MAdvanced debuggingSystem & Data TraceProgram TraceLauterbach TraceQ&AAgenda

Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

N / 52 11Debugging e Advanced debugging

Per il normale debugging si accede alla Debug Access Port (DAP) via JTAG o SWD.

Le funzionalit debugging base per il controllo di un microcontrollore sono il go/break/step e laccesso r/w a registri e memoria.

Utilizzando sistemi Lauterbach si pu fare per molto di pi N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Advanced debuggingCon advanced debugging si intende lo sfruttamento di tutte le risorse di debug on-chip e della velocit operativa dei PowerTools al fine di velocizzare il debug e implementare in PowerView le funzionalit pi avanzate.

Questo migliora molto la comprensione di come il sistema in debug si comporta, consente lanalisi delle sue performance e si offrono pi risorse utili ad eliminare rapidamente i bug

Run-timenon intrusive memory accessDataProfilingPerformanceAnalysisOn-chip BreakpointsComplexBreakpointsData LoggingFast FlashProgrammerLow PowerMode Debug N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Live demo 1: Advanced debugging

Evaluation board Freescale KinetisK60N512Cortex-M4Lauterbach Tracedebug & trace toolfor Cortex-M256MB trace storage N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Funzionalit di debug e trace nei Cortex-MAdvanced debuggingSystem & Data TraceProgram TraceLauterbach TraceQ&AAgenda

Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

N / 52 15System & Data Trace - definizioneCosa si intende per System Trace?Un metodo per capire come si comporta il programma durante lesecuzione fare in modo che trasmetta allesterno delle informazioni di sistema o di stato e notifiche di eventi. Si pu usare per questo una semplice printf() che trasmette messaggi su una porta seriale.Una printf() via seriale molto utile, ma ci sono notevoli controindicazioni:La porta seriale potrebbe non essere disponibileLa porta seriale lenta e ha un solo canaleE necessario instrumentare il programma e questo pu causare notevole intrusione (memoria e tempo)Per cambiare i punti di instrumentazione o abilitare/disabilitare ci che si vuole ricevere necessario ricompilare il