técnicas de debugging com o ice™ in-circuit emulator

62
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 1 Técnicas de Debugging com o ICE™ In-Circuit Emulator

Upload: nando

Post on 17-Nov-2014

241 views

Category:

Documents


1 download

DESCRIPTION

Objetivos da AulaNesta aula você irá: Aprender a usar o emulador MPLAB ®REAL ICE ™ em seus projetos; Entender a capacidade de depuraçãodo emulador MPLAB ® REAL ICE; Aprender os recursos avançadoscomo breakpoints avançados,breakpoints de software, runtimewatches e trace;Aprender dicas e truques.

TRANSCRIPT

Page 1: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 1

Técnicas de Debugging com o ICE™ In-Circuit Emulator

Page 2: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 2

Objetivos da Aula

Nesta aula você irá:� Aprender a usar o emulador MPLAB ®

REAL ICE ™ em seus projetos; � Entender a capacidade de depuração

do emulador MPLAB ® REAL ICE;� Aprender os recursos avançados

como breakpoints avançados, breakpoints de software, runtimewatches e trace;

� Aprender dicas e truques.

Page 3: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 3

Roteiro

� Visão Geral do Sistema� Debugging Básico� Recursos Avançados� Trace� Problemas Comuns� Dicas & Truques� Resumo

Page 4: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 4

O que é o Emulador MPLAB® REAL ICE™?

Page 5: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 5

Sistema MPLAB® REAL ICE™

� Ferramenta Flagship que auxilia no desenvolvimento e depuração de sua aplicação.

� Faz o intermédio entre o target e o MPLAB IDE

� Comunica com o periférico on-chip emulation do componente

� Depuração Rápida

Page 6: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 6

Emulador MPLAB® REAL ICE™

� MPLAB REAL ICE Emulator (DV244005)� RJ45 Driver Board and Cable � Logic Probe Leads� Self-test Board

Page 7: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 7

High Speed Performance Pak(AC244002)

Page 8: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 8

MPLAB® REAL ICE™Processor Packs

� Necessárias para dispositivos com poucos pinos ou dispositivos de baixo custo

� Usado quando cada pino é crítico� Usado para funções adicionais e /

ou menos recursos usados

Page 9: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 9

Características Básicas

� Integração perfeita com o MPLAB ®IDE

� Pode der o programador durante o desenvolvimento

� Breakpoints� Janela de inspeção de variáveis� Controle do Programa

� Run� Halt� Single Step

� Animate� Step Over� Reset

Page 10: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 10

Sistema MPLAB® REAL ICE™

Recursos avançados� Runtime watches� DMCI – Data Monitoring and Control

Interface� Trace� Stopwatch� Advanced breakpoints� Logic probes

Page 11: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 11

Emulador MPLAB® REAL ICE™ vsEmulador típico

Vantagens em relação a emuladores típicos� Actual silicon� Trabalha no sistema� Permite a depuração ao final do ciclo

de desenvolvimento� Alta velocidade de emulação com

baixo custo

Page 12: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 12

Debugging Básico

Page 13: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 13

Métodos de Conexão

Page 14: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 14

Instalação Elétrica

MPLABMPLAB®® REAL ICEREAL ICE™™ EmulatorEmulator

Page 15: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 15

Erros comuns

EmuladorEmulador MPLABMPLAB®® REAL ICEREAL ICE™™

Page 16: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 16

Configurações de Debugging

� Oscilador� Configurações � Velocidade de Depuração � Confirmar a atividade do oscilador� Recomendação: testar inicialmente

com configuração de oscilador interno

� Setup de configurações conflitantes

Page 17: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 17

Objetivos do Demo 1

� Workspace do MPLAB® IDE� Conectar, Compilar, Programar� Run, Halt� Breakpoints� Watch Window, File Registers,

Mouseovers� Single Step, Animate, Step Over, Set

PC� Settings…->Freeze

Page 18: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 18

Demo 1: Breakpoints

� Para quando� Contador de Programa = Endereço de

Breakpoint� Os recursos de hardware estão

no microcontrollador� Número Limitado� “Escorregamento” (Skid) graças

ao método de comparação

Page 19: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 19

Demo 1: Objetivos

� Workspace do MPLAB® IDE� Conectar, Compilar, Programar� Run, Halt� Breakpoints� Watch Window, File Registers,

Mouseovers� Single Step, Animate, Step Over, Set

PC� Settings…->Freeze

Page 20: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 20

Demo 1: Resumo

� Workspace do MPLAB® IDE� Conectar, Compilar, Programar� Run, Halt� Breakpoints� Watch Window, File Registers,

Mouseovers� Single Step, Animate, Step Over, Set

PC� Settings…->Freeze

Page 21: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 21

Considerações dos dispositivos

� Cada família possui requisitos próprios para depuração

� Limitações encontradas na ajuda on-line

� Use a caixa de seleção noMPLAB® IDE

Page 22: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 22

Resumo

� Checar conexões físicas � Configurações do oscilador � Definições de configuração � Recursos básicos de depuração e

como usá-los no MPLAB ® IDE � Esteja consciente dos recursos

necessários

Page 23: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 23

Recursos avançados

Page 24: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 24

Recursos avançados

� Software Breakpoints� Advanced Breakpoints� Stopwatch� Runtime watches� DMCI – Data Monitor and

Control Interface

Page 25: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 25

Software Breakpoints

� Breakpoints de Software permitem um número praticamente ilimitado de pontos de interrupção

� Não há escorregamento (skid)!� Como funcionam os breakpoints

de software?� Quais são as armadilhas?

Page 26: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 26

Software Breakpoints

1. Substitui a instrução original, por uma instrução TRAP

2. Quando atingida a instrução TRAP, o processador entra em Halt

3. PC escreve e executa a instrução original

4. Programa novamente a instrução TRAP

Page 27: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 27

Breakpoints Avançados

� Data Breakpoints� Event Breakpoints� ANDed Breakpoints� Sequenced Breakpoints� Stopwatch

Page 28: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 28

Runtime Watches

� Atualiza a janela de inspeção, enquanto a aplicação está em execução

� Excelente para ajuste fino em aplicações� Obtém feedback das condições em tempo

real� Testa a reação do sistema no caso de

alteração de valores � Verifica a execução o sistema em tempo de

execução

Page 29: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 29

Runtime Watches

� Requisitos para utilização dos Runtime Watches� <15MIPS para o RJ45� High Speed Performance Pak

para velocidades maiores � Microcontroladores Compatíveis

Page 30: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 30

Data Monitor and Control Interface

� O que é o DMCI?� Quais as aplicações para o DMCI?

Page 31: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 31

Objetivos do Demo 2

� Breakpoint Dialog� Data Breakpoint� Stopwatch� Runtime Watches� DMCI – Data Monitor Control

Interface

Page 32: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 32

Demo 2:Recursos avançados

Page 33: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 33

Demo 2 Resumo

� Breakpoint Dialog� Data Breakpoint� Stopwatch� Runtime Watches� DMCI – Data Monitor Control

Interface

Page 34: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 34

Resumo

� Software Breakpoints� Advanced Breakpoints� Stop Watch� Runtime Watches� DMCI – Data Monitor Control

Interface

Page 35: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 35

TRACE

Page 36: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 36

Trace

Rastreia variáveis Monitora a execução do programa

� Registra dados em tempo real � Monitora a execução do programa � Endereço e instrução � Trace buffer praticamente ilimitado� Rastreamentos podem ser

armazenados HD � Interface amigável (point and click)

Page 37: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 37

Trace

� Microchip utiliza dois tipos� Trace

� Usa macros para o rastrear código e registrar variáveis

� Trace Nativo� Trace do SPI� Trace de PORT

� Instruction Trace (PIC32MX)� Usa periféricos do chip que indicam

mudanças na fluência do programa

Page 38: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 38

Trace: O que eu ganho com isso?

Page 39: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 39

Trace Nativo

� Usa o PGC/PGD

� Mais lento

Page 40: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 40

Trace do SPI

� Mais rápido� Requer LVDS e o periférico SPI (2

pinos adicionais)

Page 41: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 41

Trace do PORT

� O Mais rápido

� Requer 8 pinos

Page 42: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 42

Trace de Instruções

� Periférico “built in”, sem necessidade de macros� Mostra cada linha executada � Disponível atualmente apenas para o PIC32MX� Requer 5 pinos dedicados� MPLAB® REAL ICE™ Trace Kit (AC244006)

Page 43: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 43

Page 44: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 44

Trace

� Mostra como o código está fluindo (Breadcrumbs).

� Trace é um código físico, use-o para a sua vantagem

� Trace de instrução no PIC32Mx

Page 45: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 45

Objetivos do Demo 3

� Setup do Trace� Adicionar Log e declaração para o

Trace� Decifrador de dados do Trace

Page 46: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 46

Demo 3:Trace

Page 47: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 47

Demo 3: Resumo

� Setup do Trace� Adicionar Log e declaração para o

Trace� Decifrador de dados do Trace

Page 48: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 48

Trace Resumo

� Aprendemos o que é o Trace� Variações do Trace� Como usar o Trace com

dispositivos da Microchip

Page 49: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 49

Problemas comuns

Page 50: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 50

Problemas comuns

� Elétrico� Ruído� Oscilador� Configuração� Velocidade� Recursos� Use o Self-Test Board

Page 51: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 51

Dicas & Truques

Page 52: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 52

Dicas & Truques

� Debugging dsPIC® DSC/PIC24� Use o Trap Handler

(www.microchip.com/codeexamples)� Redefina o DefaultInterrupt� Use Asserts� Trap Instructions� #define _HALT() (__asm__ volatile

(“.pword 0xDA4000”);)

Page 53: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 53

Dicas & Truques

� Pare de recriar código a partir do zero! Use bibliotecas

� Concentre-se durante a depuração; Sempre trate problemas isoladamente, “STOP HACKING”

� Gaste dinheiro com ferramentas! Bons MSOsproduzem retorno financeiro rapidamente; INTRONIX Logic Port é acessível

� Aprenda a utilizar as ferramentas� Não deixe de utilizar métodos tradicionais de

depuração, como pinos de teste e analisadores lógicos

Page 54: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 54

Resumo

� Hoje nós vimos:� O que é um emulador MPLAB REAL

ICE ™ ® o que ele pode fazer por mim?

� Como utilizar recursos avançados � Diversos métodos de rastreamento e

como eles funcionam � Problemas comuns � Várias dicas e truques para ajudar no

desenvolvimento

Page 55: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 55

Recursos adicionais

� Forums na Web� Websites de códigos� Ajuda do MPLAB® IDE � FAE local, peça um ticket em

microchip.com

Page 56: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 56

Obrigado…

������������� ������������������� ������������������� ������������������� ������� �� �� �� � �� ��� ��� ���� ��� ��� ���� ��� ��� ���� ��� ��� �

Page 57: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 57

Apêndice

� Exemplo de código com Halt� Asserts using Halts� Fluxograma do Software

Breakpoint

Page 58: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 58

Exemplo de Código com Halt

#ifdef EMULATORBOOL gblSTAYINTRAP = TRUE;

#else#define gblSTAYINTRAP 1

#endif

void __attribute__((__interrupt__,__no_auto_psv__)) _AddressError(void)

{

INTCON1bits.ADDRERR = 0;_HALT();while(gblSTAYINTRAP);

}

Page 59: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 59

Asserts using HALT

#ifdef EMULATOR

#define HASSERT(x) {if(!x){_HALT();}}

#else#define HASSERT(x)

#endif

Page 60: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 60

Software Breakpoints

Page 61: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 61

Trademarks

The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KeeLoq, KeeLoq logo, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, rfPIC and SmartShunt are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.FilterLab, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A.Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, PICkit, PICDEM, PICDEM.net, PICtail, PIC32 logo, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, Total Endurance, UNI/O, WiperLock and ZENA are trademarks of Microchip TechnologyIncorporated in the U.S.A. and other countries.SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.All other trademarks mentioned herein are property of their respective companies.© 2008, Microchip Technology Incorporated. All Rights Reserved.

Page 62: Técnicas de Debugging com o ICE™ In-Circuit Emulator

© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 62

A equipe Microchip agradece a sua presença!