Debugging ARM Cortex™- M con µTrace
date post
25-Feb-2016Category
Documents
view
48download
4
Embed Size (px)
description
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