Www. Debugging ARM Cortex™-M con µTrace I microcontrollori ARM Cortex™-M sono...

download Www.  Debugging ARM Cortex™-M con µTrace I microcontrollori ARM Cortex™-M sono ricchi di funzionalità di debug e trace estremamente utili,

If you can't read please download the document

  • date post

    02-May-2015
  • Category

    Documents

  • view

    223
  • download

    3

Embed Size (px)

Transcript of Www. Debugging ARM Cortex™-M con µTrace I microcontrollori ARM Cortex™-M sono...

  • Slide 1
  • 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 sistemi Lauterbach e quali vantaggi si ottengono con Trace. Maurizio Menegotto relatore slides Marco Ferrario relatore live demo
  • Slide 2
  • Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com 2 / 52 Funzionalit di debug e trace nei Cortex-M Advanced debugging System & Data Trace Program Trace Lauterbach Trace Q&A Agenda Live Demo Live Demo Live Demo
  • Slide 3
  • Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com 3 / 52 Funzionalit di debug e trace nei Cortex-M Advanced debugging System & Data Trace Program Trace Lauterbach Trace Q&A Agenda Cortex-M chip TPIU SWV, SWO DWT, ITM ETM, ETB SWD, JTAG DAP
  • Slide 4
  • 4 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Funzionalit di debug e trace nei Cortex-M La 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?
  • Slide 5
  • 5 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Componenti CoreSight Cortex-M: DAP Coresight Cortex-M Microcontroller DAP Debug Access Port SWD Serial Wire Debug (SWD) 2 TDO TDI TMS TCK TRST 5 Debug Access JTAG DAP (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 registri Impostazione di breakpoint e trigger Flash programming XOR
  • Slide 6
  • 6 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Componenti CoreSight Cortex-M: DWT & ITM Coresight Cortex-M Microcontroller DWT Data Watchpoint & Trace unit SWV Serial Wire Output (SWO) 4 TPIU Trace Clock TRACECLK Trace Data TRACED[0..3] Application driven instrumentation messages Serial Wire Viewer Data Messages Trace Port Interface Unit DAP Debug Access Port SWD ITM Instrumentation Trace Macrocell Serial Wire Debug (SWD) 12 TDO TDI TMS TCK TRST 5 Debug Access 1 JTAG DWT 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 SWD XOR &
  • Slide 7
  • 7 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Componenti CoreSight Cortex-M: ETM Coresight Cortex-M Microcontroller DWT Data Watchpoint & Trace unit SWV Serial Wire Output (SWO) 4 TPIU Trace Clock TRACECLK Trace Data TRACED[0..3] Application driven instrumentation messages Serial Wire Viewer Program Flow Data Messages Trace Port Interface Unit ETM Embedded Trace Macrocell DAP Debug Access Port SWD ITM Instrumentation Trace Macrocell Serial Wire Debug (SWD) 12 TDO TDI TMS TCK TRST 5 Debug Access 1 JTAG XOR & 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
  • Slide 8
  • 8 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Componenti CoreSight Cortex-M: ETM & ETB Coresight Cortex-M Microcontroller DWT Data Watchpoint & Trace unit SWV Serial Wire Output (SWO) 4 TPIU Application driven instrumentation messages Serial Wire Viewer Data Messages Trace Port Interface Unit DAP Debug Access Port SWD ITM Instrumentation Trace Macrocell Serial Wire Debug (SWD) 12 TDO TDI TMS TCK TRST 5 Debug Access 1 JTAG XOR & 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). ETB Embedded Trace Buffer ETM Embedded Trace Macrocell XOR Program Flow Trace Clock TRACECLK Trace Data TRACED[0..3]
  • Slide 9
  • 9 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Configurazioni CoreSight per Cortex-M 1/2 E 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-M Microcontroller DWT 4 TPIU Trace Clock TRACECLK Trace Data TRACED[0..3] Application driven instrumentation messages Program Flow Data Messages DAP ITM TDO TDI TMS TCK TRST 5 Debug Acces 1 JTAG ETM Configurazione CoreSight ricca con utilizzo di tutti i pin (5+4+1)
  • Slide 10
  • 10 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Configurazioni CoreSight per Cortex-M 2/2 Coresight Cortex-M Microcontroller DWT SWV Serial Wire Output (SWO) Application driven instrumentation messages Data Messages DAP SWD ITM Serial Wire Debug (SWD) 12 Debug Access Coresight Cortex-M Microcontroller DWT 4 TPIU Trace Clock TRACECLK Trace Data TRACED[0..3] Application driven instrumentation messages Program Flow Data Messages DAP ITM TDO TDI TMS TCK TRST 5 Debug Acces 1 JTAG ETM Purtroppo 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)
  • Slide 11
  • Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com 11 / 52 Funzionalit di debug e trace nei Cortex-M Advanced debugging System & Data Trace Program Trace Lauterbach Trace Q&A Agenda
  • Slide 12
  • 12 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Debugging 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
  • Slide 13
  • 13 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Advanced debugging Con 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-time non intrusive memory access Data Profiling Performance Analysis On-chip Breakpoints Complex Breakpoints Data Logging Fast Flash Programmer Low Power Mode Debug
  • Slide 14
  • 14 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com Live demo 1: Advanced debugging Evaluation board Freescale Kinetis K60N512 Cortex-M4 Lauterbach Trace debug & trace tool for Cortex-M 256MB trace storage
  • Slide 15
  • Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com 15 / 52 Funzionalit di debug e trace nei Cortex-M Advanced debugging System & Data Trace Program Trace Lauterbach Trace Q&A Agenda
  • Slide 16
  • 16 / 52 Debugging ARM Cortex-M con Trace Maurizio Menegotto, Marco Ferrario 26/3/2014 www.lauterbach.com System & Data Trace - definizione Cosa si intende per