Debugging ARM Cortex™- M con µTrace

of 52/52
www.lauterbach.com 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? 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 Maurizio Menegotto relatore slides Marco Ferrario relatore live demo
  • date post

    25-Feb-2016
  • Category

    Documents

  • view

    53
  • 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 programmaNon ci sono time-stamp

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

System & Data Trace - implementazioneLidea base del System Trace buona, serve solo un canale pi efficiente.Il Test and Debug workgroup della MIPI Alliance, di cui Lauterbach fa parte, ha definito nuove tecnologie per le trace-port tra cui CoreSight ITM (Instrumented Trace Macrocell).

ITM consente di trasmettere dati a 8/16/32 bit ad alta velocitI dati custom possono essere originati dal programma scrivendo su opportuni registri del chip con una instrumentazione software minimaleInterrupt, program counter, data watchpoint e altre informazioni possono essere originati dal modulo DWT, configurato dal debugger, senza alcuna instrumentazione software.ITM utilizza un canale seriale veloce dedicato (SWV) oppure la (TPIU) trace port da 4 bit a max trace clock 200Mhz.Il time stamp molto accurato

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

Data Trace: DWT Coresight Cortex-M MicrocontrollerDWTDataWatchpoint & Trace unitSWVSerial WireOutput (SWO)4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]System Traceapplicationdriveninstrumentation messagesSerialWireViewerDataMessagesTrace PortInterface UnitITMInstrumentation Trace Macrocell11Con la DWT (Data Watchpoint & Trace) unit si trasmettono dati e eventi originati da logica on-chip attivabile dal debugger:

XOR

Interrupt Trace(records interrupt entry/exit)Profiling Trace (Benchmark counters)Data watchpoint(Data trace watchpoint)PC Sampler(sampled PC recording)Time stamps

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

Data Trace: DWT I dati originati dalla DWT vengono registrati e possono essere analizzati in molti diversi modi

Perfomance MIPS/sec

Data Trace variable R/W

Function profiling statistics

Interrupt entry/exit

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

Coresight Cortex-M MicrocontrollerDWTDataWatchpoint & Trace unitSWVSerial WireOutput (SWO)4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]System Traceapplicationdriveninstrumentation messagesSerialWireViewerDataMessagesTrace PortInterface UnitITMInstrumentation Trace Macrocell11Per System Trace si intende la trasmissione di dati originati dalla instrumentazione del programma in esecuzione.I dati custom vengono scritti a 8/16/32 bit su 32 canali dedicati (Stimulus Registers) e questo ne causa limmediata trasmissione.Ogni canale pu essere attivato o disattivato dal programma o dal debugger anche run-time, utile per filtrare i flussi di dati senza dover ricompilare.Loperazione di scrittura immediata e richiede pochissime istruzioni, lintrusione cos minima.Lauterbach fornisce funzioni e macro C per facilitare la trasmissione dati ITM:ITM_write8(),ITM_write16(),ITM_write32()ITM_log_address()ITM_printf()

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

System Trace: ITMI dati trasmessi dal System Trace vengono registrati e possono essere mostrati in diversi modi, interpretati da custom DLL, o esportati su file.

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

Live demo 2: System & Data Trace

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 23Cosa il Trace?Per trace si intende un sistema per la registrazione della sequenza di istruzioni eseguite e dei dati letti/scritti da una CPU, senza doverla fermare.

DebuggingScattare fotografie

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

Perch serve il Real-Time Trace?non posso semplicemente fermare il core?

Si, possiamo fermare il core

Potremmo anche fermare la periferia.

Ma non possiamo fermare il motore! N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Il Trace negli ARM Cortex-MCoresight Cortex-MMicrocontrollerDWTDataWatchpoint & Trace unit4TPIUTrace ClockTRACECLKTrace DataTRACED[0..3]ProgramFlowDataMessagesETMEmbeddedTrace Macrocell

ITM1Il modulo ETM implementa il program trace.Negli ARM e nei Cortex-A/R si usa una trace port dedicata al solo trace ETM. Nei Cortex-M invece la stessa trace port a 4 bit condivisa da ETM (Program Trace) e ITM (Data Trace).I due flussi trace vengono registrati nello stesso trace storage e mostrati da diversi comandi in PowerView.Il trace pu essere trasmesso off-chip attraverso la TPIU (4 bit trace port), oppureETBEmbedded TraceBufferse non ce la trace port, pu essere registrato nel buffer on-chip ETB. N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Trace ETB: on-chip traceIl program trace flow viene registrato in un buffer RAM interno al chip: ETB.Il trace registrato nel chip stesso viene poi letto tramite la debug port (DAP) ed analizzato dal debugger PowerView.

Cortex-M Core

DEBUGPORTCoreSightDAPETB

Link USB2 o USB3Trace debug & traceHost PCPowerViewDebuggerTrace buffer ETB:

Typical: 2KB ~250SecAnalysis & Display N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Trace ETM: off-chip traceIl program trace flow viene trasmesso in tempo reale attraverso la trace port e decodificato dal trace tool, che lo registra nel proprio trace storage hardware. Il trace registrato viene poi letto ed analizzato dal debugger PowerView

TRACEPORTCortex-M Core

Program Trace FlowLink USB2 o USB3Trace debug & traceDEBUGPORTCoreSightETMDAP

RecordingReadingTrace tools storage:

Combiprobe: 128MB ~10 secTrace: 256MB ~20 secPowerTrace: 512MB ~40 secPowerTrace II: 1/2/4GB up to ~10 minHost PCPowerViewDebuggerAnalysis & Display N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Trace ETM: StreamingIl trace trasmesso in tempo reale dalla trace port viene catturato e decodificato dal trace tool che lo comprime e lo trasmette al PC. PowerView pu analizzare e mostrare immediatamente i dati (Real-Time Streaming) o registrarli su hard-disk (Long Term Trace) per trace di lunga durata.

TRACEPORTCortex-M Core

Program Trace FlowLink USB3Trace debug & traceDEBUGPORTCoreSightETMDAP

Host PCPowerViewDebuggerStreaming

Compression

RecordingMax trace storage:

1 Tera-Frame ~20 oreAnalysis & Display N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

Come posso utilizzare il Real-Time Trace?I PowerTools consentono il trace di lunga durata, con milioni o miliardi di istruzioni registrate, che corrispondono a minuti o ore di esecuzione. In modalit STREAM si arriva ad 1 tera-frame !

Ok, ma come usare un trace cos grande?Con un software di analisi molto veloce e ricco di funzionalit: PowerView

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

Con PowerView il Real-Time Trace si usa per:Analizzare le performance del codiceAnalizzare eventi esterni2) Ottimizzazione con misure temporali

Dimostrare il rispetto dei requisiti real-timeVerificare il code coverage3) QualificazioneISO262621) Trace-based DebuggingDebug rapido senza fermare la CPUTrovare bugs che appaiono solo in real-time

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

E fuori dubbio che fermandosi in break nel punto dove si verifica un errore sia molto pi facile comprenderlo e risolverlo perch si nel contesto dellerrore.1) Trace Based DebuggingIndividuare il punto di break corretto spesso la cosa pi difficile. In molti casi non si ha idea di dove lerrore capiti. In altri casi non ci si pu fermare.

BREAKProcedere per tentativi pu portare a enormi perdite di tempo...

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

32

Istruzioni eseguiteIstruzioni non eseguiteData read/writeTempo relativoIl trace di grande aiuto: sempre attivo, ogni esecuzione in run o step viene registrata ed immediatamente visibile per comprendere cosa accaduto.

Ci si pu fermare DOPO che il problema accaduto e tornando indietro nel trace (cio nel tempo) si pu osservare il comportamento del programma nel punto in cui ha sbagliato:

TEMPO

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

33La comprensione di come il programma ha eseguito non sempre un compito semplice (assembler, ottimizzazioni, pipeline).

Nel trace list infatti il codice non viene mostrato nellordine in cui stato scritto

INDIRIZZIProgramma in memoriaTrace Based Debugging: address vs time

TEMPOProgramma eseguito nel tempoma nellordine in cui stato eseguito dalla CPU. N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

34

CTS la soluzione al problema: ricostruisce i contesti a ritroso nel tempo e li si possono analizzare come se ci si fosse fermati in break.CTS una moviola che consente di ri-eseguire in step avanti e indietro il programma mostrando in dettaglio le variazioni su variabili, registri, stack.Trace Based Debugging: Context Tracking System

Trace ListRegistersStack frameVariablesCTS debug controlStep Step N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

35Re-debug the part of the program execution that was recorded to the trace

How is this done?You select a specific instruction in the trace as synchronization point and then the TRACE32 GUI shows you the context of your target as it was when this instruction was executed

Context means:

From this synchronization point you can then re-debug the recorded program sectionLindividuazione dei punti dove ottimizzare il programma molto facilitata dallanalisi grafica e statistica del trace registrato.

2) Ottimizzazione: Trace.Chart

I comandi Trace.Chart analizzano visivamente il nesting di simboli, funzioni e task e consentono la misura accurata dei tempiTask State TimingFunction NestingMisure durata e distanza N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

362) Ottimizzazione: Trace.Statistic

Trace.Statistic analizza statisticamente i tempi di task e funzioni e consente lanalisi di durata, periodicit o distanza di qualsiasi parte del programma N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

37Opzione Probe analogicoProbe analogico aggiuntivo per TraceIl probe analogico misura fino a 4 tensioni e 3 correnti e fino a max 625 Khz per canaleI valori di corrente e tensione e la potenza istantanea vengono registrati nel trace storage insieme al program trace, con lo stesso time stamp

2) Ottimizzazione: Energy Profiling

Energy ProfilingLa correlazione tra program trace e misure elettriche consente unanalisi accurata dei consumi associati alle diverse parti del programma e agli stati di power saving del microcontrollore.

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

38Il Code Coverage una misura diretta di quale parte del codice di una applicazione stato eseguito. Statement Coverage e Condition Coverage sono due tipi di copertura richiesti dagli standard di certificazione. Con TRACE32 vengono derivati direttamente dal program trace ETM in modo non intrusivo.3) Qualificazione: Code Coverage

Il Coverage pu essere analizzato in modo interattivo con diversi livelli di dettaglio: asm, linea, funzione, file, programma

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

39Il Code Coverage, organizzato per file sorgenti, funzioni, linee di codice, pu essere esportato in formato XML e analizzato con un comune web browser.3) Qualificazione: Code Coverage EXPORT

E possibile aggiungere annotazioni (bookmark) al coverage per meglio descrivere i risultati.

Il file XML pu essere convertito in HTML o PDF per produrre documentazione per la certificazione.ISO26262DO-178B

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

40Live demo 3: Program Trace

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

Il trace una scelta importanteLa scelta del metodo di trace dipende principalmente dalla CPU impiegata e dalle sue risorse.

I risultati che si ottengono dipendonodalla qualit del trace tool.Il trace : Lo strumento che permette di vedere cosa accade realmente durante lesecuzione della vostra applicazione.

Il trace va considerato come: Lo strumento per abbattere i tempi di sviluppo e la miglior garanzia di scoprire e risolvere rapidamente i problemi 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 43Lauterbach PowerToolsLa modularit dei PowerTools un grande vantaggio, ma causa anche una maggiore complessit del sistema e maggiori costi.

PowerDebug(debug)PowerTrace(debug+trace)PowerIntegrator(debug+trace+logic analyzer)Con oltre 30 anni di attivit e Lauterbach lazienda leader mondiale per i debug e trace tools. I sistemi TRACE32 PowerTools sono gli hw/sw debugger pi avanzati oggi disponibili. Si tratta di sistemi hardware modulari e universali che supportano debug-port e trace-port di molte diverse cpu e architetture. N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

44Trace: la soluzione all-in-one per Cortex-MIl nuovo prodotto Trace non un prodotto hardware modulare ed progettato specificamente per la famiglia ARM Cortex-M.Trace utilizza il consolidato ambiente software di debug trace e analisi TRACE32 PowerView comune a tutti i sistemi Lauterbach.In questo modo stato possibile ridurre notevolmente i costi ed offrire cos un prodotto ad altissime prestazioni ad un prezzo competitivo.

Trace

Link: USB3 & USB2Connector MIPI-34Adapters MIPI-10/20, JTAG 14/20High speed debug and trace controller support: JTAG, SWD, cJTAG, SWV, 4 bit TPIU256MB trace storage with time stamp for ETM, ITM N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

45Trace: caratteristiche hardware, debug & trace featuresPrestazioni di debugDebug ASM, C/C++Ambiente di debug PowerView per Windows, Linux e MacOS-XFast flash programmer integratoBreakpoint semplici e complessi illimitatiLettura/scrittura non intrusiva in memoria durante lesecuzioneSupporto multicore debuggerSupporto sleep/power saving modes

Prestazioni di trace4 bit ETMv3 in modo ContinuousITM su TPIU e Serial Wire OutputMax trace clock 200MhzAnalisi di esecuzione delle funzioni e dei taskAnalisi di copertura del codice (statement & function coverage)3 modi di registrazione: FIFO, STREAM, Real-Time profiling conanalisi in tempo-reale durante la registrazioneStreaming del flusso trace verso host computer per trace di lungadurata, velocit di streaming fino a 100Mbyte/sec

Caratteristiche Trace Supporto per pi di 1500 differenti processori Cortex-MInterfaccia USB3Standard JTAG, Serial Wire Debug, cJTAGConnettore MIPI 34-pin a passo ridotto e adattatori MIPI 10/20 pin, ARM JTAG 14/20Range di tensione da 0.3V a 3.3V, tolleranza 5V (input) 256Mbyte di memoria trace

www.lauterbach.com/microtrace.html

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

46Funzionalit 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 47Q#1: Cosa necessario per usare il trace sul mio target?1. Scegliere una CPU con traceOggi ce ne sono moltissimeIl trace pu essere off-chip o on-chip

CPUconTRACE2. Prevedere un connettore per il traceSe on-chip sufficiente la debug-port (es. MIPI-10)Se off-chip necessario aggiungere la trace-port (es. MIPI-20)

3. Scegliere un trace tool adeguato in funzione di:Tipo e dimensione della trace-portDurata del trace desiderato Sistemi Lauterbach gi in uso (aggiornabili?)

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

48Connettori MIPI-10 e MIPI-20T (trace) per Cortex-M

MIPI-10

MIPI-20T

Debug port 4 o 2+1 bitDebug JTAG o SWDITM trace via SWVon-chip trace ETB

TPIU trace port 4+1 pinoff-chip trace ITM off-chip trace ETM

MIPI-20Tsmd connector Samtec FTSH 110-01-L-DV-K

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

49I PowerTools sono sistemi modulari e possono essere aggiornati per il supporto a diverse architetture. In particolare se ho gi un PowerDebug con un debug cable per unaltra architettura, posso aggiornarlo:Q#2: Quale TRACE32 per il mio sviluppo su Cortex-M?

PowerDebugCombiprobe: debug + traceSe il chip ha una trace port ETM/ITM o anche solo SWV per ITM, posso aggiungere o aggiornare un Combiprobe Best Performance

Se ho un Cortex-M senza trace port, o se sono interessato al solo debug, sufficiente aggiungere il JTAG Cable Cortex-MBest PriceJtag Cable: debugPowerDebugAggiornamenti

Se devo acquistare un nuovo sistema dedicato al solo Cortex-M conveniente scegliere Trace indipendentemente dalle risorse del chipTrace Cortex-MJtag debugger + trace 256MBBest PriceBest PerformanceFor Cortex-M onlyNuovo N / 52 Debugging ARM Cortex-M conTrace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com

50NOSIRisposte...

DOMANDE?Q&A

JTAG & TPIU?MIPI-10 o MIPI-20?SWD & SWO?FINEDebug? Trace?Combiprobe? Trace?PowerDebug?

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

Maurizio [email protected]

Marco [email protected]

Per informazioni:

tel: 02-45490282

web: www.lauterbach.it

email: [email protected]

Grazie per aver partecipato al webinarDebugging ARM Cortex-M conTracewww.lauterbach.com 52