Você está na página 1de 62

Técnicas de Debugging com o

ICE™ In-Circuit Emulator

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


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, runtime
watches e trace;
Aprender dicas e truques.

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


Roteiro

Visão Geral do Sistema


Debugging Básico
Recursos Avançados
Trace
Problemas Comuns
Dicas & Truques
Resumo
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 3
O que é o Emulador MPLAB® REAL ICE™?

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


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

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


Emulador MPLAB® REAL ICE™

MPLAB REAL ICE Emulator (DV244005)


RJ45 Driver Board and Cable
Logic Probe Leads
Self-test Board

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


High Speed Performance Pak
(AC244002)

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


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

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


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 Animate
Halt Step Over
Single Step
Reset
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 9
Sistema MPLAB® REAL ICE™

Recursos avançados
Runtime watches
DMCI – Data Monitoring and Control
Interface
Trace
Stopwatch
Advanced breakpoints
Logic probes

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


Emulador MPLAB® REAL ICE™ vs
Emulador 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

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


Debugging Básico

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


Métodos de Conexão

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


Instalação Elétrica
MPLAB® REAL ICE™ Emulator

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


Erros comuns
Emulador MPLAB® REAL ICE™

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


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
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 16
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
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 17
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

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


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
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 19
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
© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 20
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 no
MPLAB® IDE

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


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

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


Recursos avançados

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


Recursos avançados

Software Breakpoints
Advanced Breakpoints
Stopwatch
Runtime watches
DMCI – Data Monitor and
Control Interface

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


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?

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


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

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


Breakpoints Avançados

Data Breakpoints
Event Breakpoints
ANDed Breakpoints
Sequenced Breakpoints
Stopwatch

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


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

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


Runtime Watches

Requisitos para utilização dos


Runtime Watches
<15MIPS para o RJ45
High Speed Performance Pak
para velocidades maiores
Microcontroladores Compatíveis

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


Data Monitor and Control Interface

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

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


Objetivos do Demo 2

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

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


Demo 2:
Recursos avançados

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


Demo 2 Resumo

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

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


Resumo

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

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


TRACE

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


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)

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


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

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


Trace: O que eu ganho com isso?

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


Trace Nativo

Usa o PGC/PGD
Mais lento

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


Trace do SPI

Mais rápido
Requer LVDS e o periférico SPI (2
pinos adicionais)

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


Trace do PORT

O Mais rápido
Requer 8 pinos

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


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)

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


© 2009 Microchip Technology Incorporated. All Rights Reserved. Slide 43
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

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


Objetivos do Demo 3

Setup do Trace
Adicionar Log e declaração para o
Trace
Decifrador de dados do Trace

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


Demo 3:
Trace

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


Demo 3: Resumo

Setup do Trace
Adicionar Log e declaração para o
Trace
Decifrador de dados do Trace

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


Trace Resumo

Aprendemos o que é o Trace


Variações do Trace
Como usar o Trace com
dispositivos da Microchip

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


Problemas comuns

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


Problemas comuns

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

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


Dicas & Truques

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


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”);)

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


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 MSOs
produzem 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

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


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

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


Recursos adicionais

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

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


Obrigado…

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


Apêndice

Exemplo de código com Halt


Asserts using Halts
Fluxograma do Software
Breakpoint

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


Exemplo de Código com Halt

#ifdef EMULATOR
BOOL gblSTAYINTRAP = TRUE;
#else
#define gblSTAYINTRAP 1
#endif

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

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

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


Asserts using HALT

#ifdef EMULATOR
#define HASSERT(x) {if(!x){_HALT();}}
#else
#define HASSERT(x)
#endif

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


Software Breakpoints

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


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 Technology
Incorporated 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.

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


A equipe Microchip agradece a sua
presença!

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

Você também pode gostar