Sie sind auf Seite 1von 31

24/02/2015

1. VISÃO GERAL
2. MPASM
MPASM™™
MPLAB® IDE 3. MPLAB® SIM
4. MPLAB® ICD2

24/02/2015 1 24/02/2015 2

1 VISÃO GERAL 1 VISÃO GERAL


MPLAB®
• IDE – Integrated Development Environment.
• Permite a programação da MCU através do computador.
• O IDE fornecido pela Microchip é o MPLAB®
• MPLAB® – Machine Perception LABoratory.
VISÃO GERAL • O MPLAB® permite programar MCU da família PIC®.

24/02/2015 3 24/02/2015 4

1 VISÃO GERAL 1 VISÃO GERAL


MPLAB® MPLAB®

• Editor de texto para entrada do código.


• Debugging do código.
• Simulador de PIC® e de dsPIC®.
• Assembler (Montador).
• Compilador C.
• Outros itens.

24/02/2015 5 24/02/2015 6

1
24/02/2015

1 VISÃO GERAL 1 VISÃO GERAL


Suporte Página na internet

24/02/2015 7 24/02/2015 8

1 VISÃO GERAL 1 VISÃO GERAL


Download do MPLAB® IDE 8.91 Componentes disponíveis
1. Serial Memory Devices 23. PICkit
2. 8-bit MCUs and KeeLoq devices. 24. PICkit2
3. 16-bit MCUs and DSCs 25. PICkit3
4. 32 bit MCUs 26. MPLAB ICE 2000
5. REAL ICE CMD 27. MPLAB ICE 4000
6. ICD 3 Cmd 28. MPLAB REAL ICE
7. PK3CMD 29. KEELOQ
8. Procmd 30. MPLAB PIC32 Starter Kit
9. PM3Cmd 31. MPLAB Serial Memory Products Starter Kit
10. Visual Procmd USAREMOS 32. MPLAB dsPIC Starter Kit
11
11. MPASM S Suite
it 33
33. A li ti M
Application Maestro
t
12. ASM30 Suite 34. CCS PCB C Compiler, Microchip MPLAB IDE Edition
13. MPLAB C32 Suite 35. Target Application I/O Display
14. HI-TECH C for PIC10/12/16 MCUs, Lite or PRO Edition 36. Data Monitor and Control Interface
15. MPLAB IDE 37. AN908 ACIM Tuning Interface
16. MPLAB PM3 38. Real Time OS Viewer
17. PICSTART Plus 39. MATLAB
18. PRO MATE II USAREMOS 40. PCLint
19. MPLAB ICD 2 41. SMPS GUI
20. MPLAB ICD 3 USAREMOS 42. LCD Designer
21. MPLAB SIM 43. dsPIC Filter Designer
22. AN 851 FLASH Bootloader 44. mTouch GUI
45. dsPIC Works Plug-in

24/02/2015 9 24/02/2015 10

1 VISÃO GERAL 1 VISÃO GERAL


Componentes usados neste curso Componentes usados neste curso
• MPASM™ (MPLAB® assembler)
• Permite editar um arquivo de código assembler.
• MPLAB® ICD2(in-chip designer)
• Gera o arquivo binário para ser enviado ao chip.
• Permite a execução do programa no chip real.
• Permite o uso das extensões do MPLAB® assembler.
• Permite a gravação do programa no chip.
chip
• MPLAB® SIM (simulator)
• Permite a recuperação de um programa já gravado.
• Simula, no computador, um chip real.
• Todas as variáveis do chip real podem ser lidas e escritas.
• O arquivo binário é enviado ao chip virtual.
• Todas as variáveis do chip real podem ser lidas e escritas.

24/02/2015 11 24/02/2015 12

2
24/02/2015

1 VISÃO GERAL 1 VISÃO GERAL


Componentes usados neste curso Componentes usados neste curso

USAREMOS

USAREMOS

USAREMOS

24/02/2015 13 24/02/2015 14

1 VISÃO GERAL 1 VISÃO GERAL


Ícone do programa Ambiente de trabalho

24/02/2015 15 24/02/2015 16

1 VISÃO GERAL 1 VISÃO GERAL


Project Wizard Project Wizard

24/02/2015 17 24/02/2015 18

3
24/02/2015

1 VISÃO GERAL 1 VISÃO GERAL


Project Wizard Project Wizard

24/02/2015 19 24/02/2015 20

1 VISÃO GERAL 1 VISÃO GERAL


Project Wizard Project Wizard

USAREMOS
• MPASM™ : Usado para montar um programa.
• MPLINK™ : Usado para juntar programas ou bibliotecas.
bibliotecas
• MPLIB™ : Usado para criar uma biblioteca de rotinas.

24/02/2015 21 24/02/2015 22

1 VISÃO GERAL 1 VISÃO GERAL


Project Wizard Project Wizard

24/02/2015 23 24/02/2015 24

4
24/02/2015

1 VISÃO GERAL 1 VISÃO GERAL


Project Wizard Project Wizard

24/02/2015 25 24/02/2015 26

1 VISÃO GERAL 1 VISÃO GERAL


Onde obter ajuda Barra de stado – Stats bar
Dependendo do que o programa estiver exibindo, Banco da
outros itens podem aparecer no status bar. Clock SRAM

USAREMOS

Debugger MCU Work Status Register


Register Bit 0 – C – Carry
(Acumulator) Bit 1 – DC – Digit Carry
Program Bit 2 – Z – Zero
24/02/2015 27 24/02/2015
Counter Minúsculo: 0 28
Maiúsculo: 1

1 VISÃO GERAL 1 VISÃO GERAL


Projeto Seleção do dispositivo

Os recursos em
verde são aceitos
Os recursos em pelo dispositivo,
dispositivo
vermelho não mesmo se não
estão disponíveis tiverem sido
para o dispositivo instalados.
selecionado.

24/02/2015 29 24/02/2015 30

5
24/02/2015

1 VISÃO GERAL 2 MPASM™


MPASM™
Seleção do dispositivo

USAREMOS

MPASM™
MPASM™
USAREMOS USAREMOS

Barra de ferramentas do MPLAB® SIM.

24/02/2015 31 24/02/2015 32

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Componentes Componentes

• Usado na criação de códigos para MCU’s PIC®.


• Para PIC®’s de 8 bits (10/12/16/18) são usados os recursos: USAREMOS
USAREMOS

• MPASM™ assembler v5.44.


• MPLINK™ object linker v4.42.
• MPLIB™ object librarian v4.42.

24/02/2015 33 24/02/2015 34

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Elementos de um projeto Elementos de um projeto

USAREMOS
• É necessário que exista um MCP.
• Um arquivo “.ASM” pode ser aberto
fora de um MCP, apenas para
edição, não pode ser montado.
• Um arquivo aberto fora do MCP não
é incluído na montagem.
• MCW: MicroChip Workspace.
• MCP: MicroChip Project.

24/02/2015 35 24/02/2015 36

6
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
MPASM™ Geração do código para a MCU
• Assembler para PIC1X.
Montagem Programação
• Pode ser usado de duas formas:
USAREMOS

• Geração do código para a MCU (default).


• Geração de módulos (module).
• O arquivo
q com o código
g assembly y p
pronto p
para
ser montado possui a extensão “.ASM”. USAREMOS

• O arquivo com o módulo pronto para ser juntado


possui a extensão “.LIB”.
• O arquivo com o código de máquina pronto para
USAREMOS
ser enviado à MCU possui a extensão “.HEX”.

24/02/2015 37 24/02/2015 38

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Geração do módulo para o MPLINK™ Geração do módulo para o MPLINK™
• Módulos podem ser juntados (linked) para formar um
programa maior.
• A união de módulos é feita no MPLINK™.
• Módulos podem ser reusados em outros programas.

24/02/2015 39 24/02/2015 40

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Arquivos de entrada do MPASM™ Arquivos de saída do MPASM™
• ASM – Arquivo de código (assembler).
• COF – Arquivo com código de objeto (linker).
• HEX – Arquivo exadecimal para 8 bits.
• ASM – Código fonte.
• LST – Arquivo de listagem (assembler/compiler).
• INC – Referência de inclusão,
inclusão
• MAP – Arquivo de mapa (linker).
usado no cabeçalho (header).
• O – Arquivo de objeto (assembler/compiler).
• ERR – Arquivo de erro.
• HXL – Arquivo exadecimal para 16 bits, low.
• HXH – Arquivo exadecimal para 16 bits, high.
• XRF – Arquivo de referência cruzada.
24/02/2015 41 24/02/2015 42

7
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Visualizações Conversão para disassembly

As opções desabilitadas não


estão disponíveis para o
escolhido
modelo de MCU escolhido.

Disassembly
Opcodes Do arquivo .ASM
digitado pelo usuário.
24/02/2015 43 24/02/2015 44

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Conversão para disassembly - ferramentas EEPROM

Lógica negativa: Os bits apagados contém nível lógico “1”.


24/02/2015 45 24/02/2015 46

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
EEPROM – ferramntas Registradores – SRAM

32 colunas.
16 linhas.
32  16 = 512.
368 gerais.
144 específicos.

24/02/2015 47 24/02/2015 48

8
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores – SRAM Registradores – SRAM
Banco 0
Banco 1
Banco 2
Banco 3

24/02/2015 49 24/02/2015 50
As posições desabilitadas não permitem alteração.

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores – SRAM – ferramentas Pilha
• Esta janela apresenta a pilha como ela realmente
funciona.
• É diferente da forma como é mostrada nos livros.
• Erradamente, os registrado- • Para iniciantes, isto pode gerar confusão.
res presentes em dois ou
quatro bancos, aparecem,
apenas, no banco 0.
• Seus endereços nos demais
bancos constam como Indicativo de pilha vazia
GPR’s, mas são SFR’s.

24/02/2015 51 24/02/2015 52

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Variáveis locais Program Memory (14 bits)

• Valor máximo: 3FFFh.


• Endereço máximo: 1FFFh.

• Usado no compilador.
24/02/2015 53 24/02/2015 54
• Não usado no montador.

9
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Program Memory (14 bits) Program Memory (14 bits) – ferramentas

• É recomendada a remoção da
• São 8192 linhas. coluna “line”.
• Faixa: 0000h a 1FFFh (13 bits). • Essa coluna começa em “1”, o aluno
• São 14 bits para o opcode. pode assumir esse valor como
sendo o endereço, mas não é.
• Faixa: 0000h a 3FFFh (14 bits).
24/02/2015 55 24/02/2015 56

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores específicos Registradores específicos
• WREG não possui endereço.
• WREG não é mnemônico válido no MPASM™.
• INDF não é um registrador, não há conteúdo.
• EECON2 não é um registrador, não há conteúdo.

• Erradamente, os registradores presentes em dois


ou quatro bancos, aparecem, apenas, no banco 0
• Seus endereços nos demais bancos constam
como GPR’s, mas são SFR’s.

24/02/2015 57 24/02/2015 58

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores específicos Registradores específicos
WREG 01B CCPR2
000 INDF
01B CCPR2L
001 TMR0 01C CCPR2H
002 PCL 01D CCP2CON
003 STATUS 01E ADRESH
004
005
FSR
PORTA
01F ADCON0 • O SFR name pode ser
081 OPTION_REG
006
007
PORTB
PORTC
085 TRISA usado na programação.
086 TRISB
008 PORTD
009 PORTE
087
088
TRISC
TRISD
• O assembler puro não
00A PCLATH
00B INTCON
089
08C
TRISE
PIE1
permite o uso do SFR name.
00C PIR1
08D PIE2
00D
00E
PIR2
TMR1
08E PCON • O uso do SFR name é um
091 SSPCON2
00E
00F
TMR1L
TMR1H
092
093
PR2
SSPADD
recurso do MPASM™.
010 T1CON
094 SSPSTAT
011 TMR2
098 TXSTA
012 T2CON
099 SPBRG
013 SSPBUF
09E ADRESL
014 SSPCON
09F ADCON1
015 CCPR1
10C EEDATA
015 CCPR1L
10D EEADR
016 CCPR1H
10E EEDATH
017 CCP1CON
10F EEADRH
018 RCSTA
18C EECON1
24/02/2015 019 TXREG 59 24/02/2015 60
18D EECON2
01A RCREG

10
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Inspeção de registradores Registradores específicos
• Os SFR’s podem ser chamados, no programa, pelos
seus endereços reais ou pelo seus nomes.
• O nome é convertido para o endereço no disassembly.

• O SFR name pode ser usado na programação.


• Os nomes dos bits dos SFR’s também podem ser usados.

24/02/2015 61 24/02/2015 62

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits dos SFR’s Mnemônicos
• Os bits dos SFR’s
podem ser chamados,
no programa, pelos
seus endereços reais Tipo Exemplos Disassembly
ou pelo seus nomes. De instrução NOP, ADDLW, CALL Sim
De SFR INDF, INTCON, STATUS Não
• O endereço do bit
De bits de SFR C, Z, DC, GIE, RP0 Não
varia de zero a sete.
De controle W, F Não
• O nome é convertido Rótulo Não
para o endereço no
disassembly.
• Ao falar em mnemônico, sem especificar
o tipo, considera-se o de instrução.
24/02/2015 63 24/02/2015 64

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Uso de memória Uso de memória

Flash SRAM
24/02/2015 213=8192 Registradores de uso geral 65 24/02/2015 66

11
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração

• Não é necessário entender a codificação do configuration word.


• As opções são fornecidas intuitivamente.
• São flags armazenados nos registradores de uso
específicos. • Uso da configuração pelo MPLAB®: Útil quando todos os
programas usam a mesma configuração em um computador
• Permite a configuração do estado inicial da MCU. específico.
• Tais parâmetros podem ser configurados pelo • Uso da configuração pelo programa: Útil quando cada
programa ou manualmente nesta janela. programa usa uma configuração diferente ou quando se68usa
24/02/2015 67 24/02/2015
computadores públicos.

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Código fonte (.ASM)
• Qualquer editor de texto compatível com ASCII pode ser
usado para gerar o código fonte.
• O código é formado por linhas que contém as instruções.
• Cada linha contém apenas uma instrução.
• Cada linha p pode conter q quatro tipos
p de informação:
E d
Endereço d fi ti
do configuration V l d
Valor do
word na flash configuration word • Label – Rótulo
• Mnemonic, Directive, Macro
• Operands – Operador
• Comments – Comentário
• Para facilitar a leitura do código pelo usuário, recomenda-
se usar colunas separadas para cada tipo de informação.
24/02/2015 69 24/02/2015 70

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Colunas Exemplo

USAREMOS
• Coluna 1: Label Rótulo
• Coluna 2:
USAREMOS
• Mnemonic Mnemônico
USAREMOS
• Directive Diretiva
• Macro Macro
USAREMOS

• Coluna 3: Operands Operandos


USAREMOS

• Coluna 4: Comments Comentários

24/02/2015 71 24/02/2015 72

12
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Colunas Rótulo (Label)
• Elementos:
• Rótulo
• Mnemônico • Coluna 1
• Diretiva • Pode conter qualquer texto, exceto:
• Macro • Começar com dois underscores consecutivos.
• Operandos • Começar com um underscore seguido por um número.
• Comentários. • Ser uma palavra reservada do assembler.
• Ser maior do que 32 letras.
• Somente os Mnemônicos e operandos fazem
parte do código assembly puro.
• Rótulos, diretivas, macro e comentários não são
essenciais, são acréscimos disponibilizados no
24/02/2015 MPLAB® e não são enviados ao chip. 73 24/02/2015 74

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Mnemônico Diretiva

• Coluna 2
• Coluna 2 • É um comando inserido no código.
• É um comando inserido no código. • Não está associado a uma instrução.
• Define a instrução a ser montada.
montada • Usado para controlar a montagem.
montagem
• São determinados pela linguagem assembly. • Não depende do tamanho da letra.
• Não depende do tamanho da letra, o padrão é maiúsculo. • Não gera linha no código disassembly.
• Não é gravado no chip.

24/02/2015 75 24/02/2015 76

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Tipos de diretivas Exemplos de diretivas
USAREMOS

1. De controle. De controle
Define como a montagem é feita. USAREMOS

• #include Include Additional Source File


2. Condicional. USAREMOS

• #define Define a Text Substitution Label


Define montagens condicionais. USAREMOS

Não define execução condicional.


condicional
• #undefine Delete a Substitution Label
USAREMOS

3. De dados. • Org Set Program Origin


USAREMOS

Define variáveis simbólicas. • end End Program Block USAREMOS

4. De listagem.
Define o formato da listagem do montador. De dados
USAREMOS

5. De macro. • __config Set Processor Configuration Bits


6. De arquivo object.
24/02/2015 77 24/02/2015 78

13
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
#INCLUDE Include File (.INC)

• Indica um arquivo a ser incluído na montagem.


• Arquivo a ser anexado ao projeto.
• O arquivo deve conter código assembly.
• O include possui códigos em linguagem de
• O caminho para o arquivo deve ser conhecido.
montagem.
• Se for arquivo de configuração de PIC®, o
• Um include pode ser usado e reusado por
MPLAB® já sabe o caminho.
diversos códigos fonte.
• Vários arquivos podem ser incluídos.
• É uma diretiva de controle.

24/02/2015 79 24/02/2015 80

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Include File (.INC) Include File (.INC)
#INCLUDE <P16F877.INC>
LIST

;==========================================================================
; MPASM PIC16F877 processor include
;
; (c) Copyright 1999-2012 Microchip Technology, All rights reserved
;==========================================================================

NOLIST

;==========================================================================
; This
Thi hheader
d fil
file ddefines
fi configurations,
fi ti registers,
i t and
d other
th useful
f l
; bits of information for the PIC16F877 microcontroller. These names
; are taken to match the data sheets as closely as possible.
;
; Note that the processor must be selected before this file is included.
; The processor may be selected the following ways:
;
; 1. Command line switch:
; C:\MPASM MYFILE.ASM /PIC16F877
; 2. LIST directive in the source file
; LIST P=PIC16F877
; 3. Processor Type entry in the MPASM full-screen interface
USAREMOS ; 4. Setting the processor in the MPLAB Project Dialog
;==========================================================================

;==========================================================================
;
; Verify Processor
;
;==========================================================================
IFNDEF __16F877
24/02/2015 81 24/02/2015 MESSG "Processor-header file mismatch. Verify selected processor." 82
ENDIF

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Sintaxe da inclusão de arquivo Include File (.INC)
#include include_file • A inclusão de arquivo de definição da
#include "include_file"
USAREMOS
PIC® (.INC) permite o uso de:
#include <include_file> • Mnemônicos de SFR’s.
• São permitidas até 5 hierarquias. • Mnemônicos de bits de SFR’s.
• Sã permitidas
São itid até
té 255 inclusões.
i l õ • Mnemônicos do configuration word.
• Para arquivos do usuário, pode-se colocar o caminho • Esses mnemônico e a atribuição do valor
completo. numérico está contida no próprio arquivo
• Exemplo: #include "c:\Program Files\mydefs.inc" (.INC) e podem ser consultados.
• A não inclusão do arquivo de definição
requer o uso dos endereços reais.

24/02/2015 83 24/02/2015 84

14
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Resultado de montagem sem #INCLUDE <P16F877.INC> #DEFINE e #UNDEFINE
----------------------------------------------------------------------
Debug build of project `E:\My Documents\2012_1\Disciplinas\Microprocessadores\Assembler\Marco.mcp' started.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jul 11 19:49:21 2013
----------------------------------------------------------------------
Make: The target "H:\2013_1\Microprocessadores\Assembler\pr.o" is out of date.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877 "pr.asm" /l"pr.lst" /e"pr.err" /d__DEBUG=1
• Atribui um nome a um número.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (RP1)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (STATUS)
• Este procedimento facilita a compreensão do código.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (RP0)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 11 : Symbol not previously defined (STATUS)
H:\2013
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM
1\MICROPROCESSADORES\ASSEMBLER\PR ASM 11 : Symbol not previously defined (RP1)
• A atribuição pode ser desfeita.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (RP0)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (STATUS)
• São diretivas de controle.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (RP1)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (STATUS)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (RP0)
• O tamanho do número deve ser coerente com a aplicação.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (RP1)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (STATUS)
• Se necessário, o MPASM™ corrige o erro removendo os
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (RP0)
Halting build on first failure as requested.
----------------------------------------------------------------------
bits mais significativos.
Debug build of project `E:\My Documents\2012_1\Disciplinas\Microprocessadores\Assembler\Marco.mcp' failed.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jul 11 19:49:22 2013
----------------------------------------------------------------------
BUILD FAILED

24/02/2015 85 24/02/2015 86

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
#DEFINE e #UNDEFINE ORG

• Indica o endereço de início do programa na flash.


• Se não for definido, o início é colocado em 0000h.
Aplicação Tamanho (bits) • É uma diretiva de controle.
Dado 8 • O interrupt vector localiza-se na posição 0004h.
File – direto 7 • Se este recurso for empregado, o programa deve
File – indireto 8
iniciar na posição 0005h ou superior.
Program Memory 11
Bit 3 • Neste caso, a diretiva ORG deve ser usada e o
reset vector deve ter a instrução GOTO direcionada
ao endereço chamado na diretiva ORG.

24/02/2015 87 24/02/2015 88

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Program Memory END

• Indica o final do programa.


• Todo programa deve ter um end.
• O programa deve ter apenas um end.
end
• Nenhum arquivo incluído pode conter um end.
• É uma diretiva de controle.

24/02/2015 89 24/02/2015 90

15
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Macro Operando
• Coluna 3
• Gera linha no código disassembly.
• As instruções podem usar um, dois ou
• Coluna 2 nenhum operando.
• É uma sequência
q de instruções
ç ou de diretivas • p
Operandos fornecem informações
ç numéricas
que são executadas paralelamente à execução necessárias à execução da instrução.
do código assembly assim que forem invocadas. • Os números podem ser indicados por labels.
• O operando é colocado depois (à direita) do
mnemônico, separado por um ou mais
espaços ou tabulações.
• Múltiplos operandos são separados um do
outro por meio de vírgula.
24/02/2015 91 24/02/2015 92

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Operandos para a família mid-range Comentário
01 ANDWF f,d 15 BCF f,b 23 ANDLW k • Coluna 4
02 IORWF f,d 16 BSF f,b 24 IORLW k
03 XORWF f,d • São textos explicativos para a
17 BTFSC f,b 25 XORLW k
04 ADDWF f,d compreensão do código.
18 BTFSS f,b 26 ADDLW k
05 SUBWF f,d 27 SUBLW k • São precedidos por ponto-e-vírcula.
06 COMF f d
f,d 19 CLRF f 28 MOVLW k • T d conteúdo
Todo t úd à direita
di it dod ponto-e-vírcula
t í l
07 INCF f,d 20 MOVWF f 29 RETLW k é ignorado pelo montador.
08 DECF f,d • Ponto-e-vírgula contido em uma cadeia
09 INCFSZ f,d 21 GOTO k 30 CLRW
22 CALL k (string) não é considerado, pelo montador,
10 DECFSZ f,d 31 NOP
como o início de um comentário.
11 RLF f,d 32 CLRWDT
33 SLEEP • Quando o comentário diz respeito ao
12 RRF f,d
34 RETFIE programa todo ou a um bloco do
13 SWAPF f,d
35 RETURN programa, é melhor usar a coluna 1.
14
24/02/2015 MOVF f,d 93 24/02/2015 94

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Cores Tipos de números

Tipo Sintaxe Exemplo


Binário B'dígitos' B'00111001'

Octal g
O'dígitos' O'777'

D'dígitos' D'100'
Decimal
.'dígitos' .100
• Azul: Header, diretivas e mnemônicos
H'dígitos' H'9f'
• Verde: Comentários Hexadecimal USAREMOS
0xhex_digits 0x9f
• Vermelho: Operandos ASCII
A'dígitos' A'C'
'dígitos' 'C'
• Preto: Constantes
Estas cores podem ser alteradas. • A base padrão é a decimal.
24/02/2015 95 • Se a base não for especificada, assume-se decimal.
24/02/2015 96

16
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Configuração da frequência de operação Usando “f” abaixo de 15kHz

• Não é possível aumentar muito o


tempo da contagem abaixando a
frequência de operação.
• A solução é aumentar a quantidade
de bytes de contagem.
24/02/2015 97 24/02/2015 98

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Operações do MPASM™ Operações em ordem de precedência
$ Current/Return program counter == Equal to
( Left Parenthesis != Not equal to
) Right Parenthesis & Bitwise AND
! Item NOT (logical complement) ^ Bitwise exclusive OR
• O MPASM™ permite o uso de operações - Negation (2's complement) | Bitwise inclusive OR
~ Complement && Logical AND
matemáticas em lugar dos operandos. low1 Return low byte of address || Logical OR
high1 Return high byte of address = Set equal to
• Essas operações são realizadas pelo upper1 Return upper byte of address += Add to, set equal
* Multiply -= Subtract, set equal
MPASM™ na geração do código / Divide *= Multiply, set equal
% Modulus /= Divide, set equal
disassembly antes da montagem. + Add %= Modulus, set equal
- Subtract <<= Left shift, set equal
<< Left shift >>= Right shift, set equal
>> Right shift &= AND, set equal
>= Greater or equal |= Inclusive OR, set equal
> Greater than ^= Exclusive OR, set equal
< Less than ++ Increment2
<= Less or equal -- Decrement2

24/02/2015 99 24/02/2015 100

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração

; Bits de configuração
#include <p16f877.inc>
__config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _DEBUG_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF
end

1.FOSC Oscillator Selection bits


2.WDTE
2 Watchdog
W t hd Timer
Ti Enable
E bl bit • O uso dos minemônicos de configuração requer a
3.PWRTE Power-up Timer Enable bit definição da PIC®; #include <p16f877.inc>.
4.CP FLASH Program Memory Code Protection bits
• Sem o arquivo de inclusão, é preciso escrever o
5.BOREN Brown-out Reset Enable bit
código correspondente.
6.LVP Low Voltage In-Circuit Serial Programming Enable bit
7.CPD Data EE Memory Code Protection bit
8.WRT FLASH Program Memory Write Enable bit

24/02/2015 101 24/02/2015 102

17
24/02/2015

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
_FOSC_LP 3FFCh 11111111111100b LP oscillator
_WDTE_OFF
_FOSC_XT 3FFDh 11111111111101b XT oscillator 3FFBh WDT disabled
_WDT_OFF
_FOSC_HS 3FFEh 11111111111110b HS oscillator
_WDTE_ON
_FOSC_EC 3FFFh 11111111111111b ECIO; port I/O function on RA6/OSC2/CLKO 3FFFh WDT enabled
_WDT_ON

_LP_OSC 3FECh 11111111111100b LP oscillator _BOREN_OFF


_XT_OSC 3FEDh 11111111111101b XT oscillator 3FBFh BOR disabled
_BODEN_OFF
_HS_OSC 3FEEh 11111111111110b HS oscillator _BOREN_ON
_EXTCLK 3FEFh 11111111111111b ECIO; port I/O function on RA6/OSC2/CLKO 3FFFh BOR enabled
_BODEN_ON

INTRC oscillator
_FOSC_INTOSCIO 3FFCh _PWRTE_ON 3FF7h PWRT enabled
port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin
_PWRTE_OFF 3FFFh PWRT disabled
INTRC oscillator
_FOSC_INTOSCCLK 3FFDh
CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin
_FOSC_EXTRCIO 3FFEh EXTRC oscillator; port I/O function on RA6/OSC2/CLKO _MCLRE_OFF
3FDFh RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD
_FOSC_EXTRCCLK 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO _MCLR_OFF
_MCLRE_ON
3FFFh RA5/MCLR/VPP pin function is MCLR
INTRC oscillator _MCLR_ON
_INTRC_IO 3FFCh
port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin
_CCPMX_RB3
INTRC oscillator 2FFFh CCP1 function on RB3
_INTRC_CLKOUT 3FFDh _CCP1_RB3
CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin
_CCPMX_RB0
_EXTRC_IO 3FFEh EXTRC oscillator; port I/O function on RA6/OSC2/CLKO 3FFFh CCP1 function on RB0
_CCP1_RB0
_EXTRC_CLKOUT 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO

24/02/2015 103 24/02/2015 104

2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
; Bits de configuração
#include <p16f877.inc>
_CPD_ON 3EFFh Data EE memory code‐protected __config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _DEBUG_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF
end
_CPD_OFF 3FFFh Code protection off
_CP_ON 1FFFh 0000h to 0FFFh code‐protected (all protected)
_CP_ALL 1FFFh 0000h to 0FFFh code‐protected (all protected) _XT_OSC 3FEDh
_CP_OFF 3FFFh Code protection off
_WDT_OFF 3FFBh
_WRT_ALL
39FFh 0000h to 0FFFh write‐protected
WRT_PROTECT_ALL _PWRTE_OFF 3FFFh
_WRT_2048
WRT 2048 3BFFh 0000h to 07FFh write
0000h to 07FFh write‐protected
protected, 0800h to 0FFFh may be modified by EECON control
0800h to 0FFFh may be modified by EECON control
_WRT_PROTECT_2048 3BFFh 0000h to 07FFh write‐protected, 0800h to 0FFFh may be modified by EECON control _CP_OFF 3FFFh
_WRT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control
3729h
_WRT_PROTECT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control _DEBUG_ON 37FFh
_WRT_OFF
3FFFh Write protection off _BODEN_ON 3FFFh
_WRT_PROTECT_OFF

_LVP_OFF 3F7Fh
_DEBUG_ON 37FFh In‐Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger
_DEBUG_OFF 3FFFh In‐Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins
_CPD_OFF 3FFFh

_LVP_OFF 3F7Fh RB3 is digital I/O, HV on MCLR must be used for programming


; Bits de configuração
_LVP_ON 3FFFh RB3/PGM pin has PGM function, Low‐Voltage Programming enabled
#include <p16f877.inc>
__config 0x3729
end

24/02/2015 105 24/02/2015 106

3 MPLAB® SIM 3 MPLAB® SIM


Seleção do simulador

MPLAB® SIM

USAREMOS

24/02/2015 107 24/02/2015 108

18
24/02/2015

3 MPLAB® SIM 3 MPLAB® SIM


MPLAB® SIM Debuger Tools Montagem

USAREMOS

24/02/2015 109 24/02/2015 110

3 MPLAB® SIM 3 MPLAB® SIM


Execução Build – Projeto em branco
Resultado do montagem

Run sem o Make antes


Project

Montagem

24/02/2015 111 24/02/2015 112

3 MPLAB® SIM 3 MPLAB® SIM


Build – Projeto em branco Build – Inserção de arquivo .ASM
USAREMOS

• O projeto (.MCP) pode conter diversos


tipos de arquivos.
• O tipo “Source” se refere ao código
assembler ou em linguagem de alto nível.
• É preciso que haja um arquivo nesta
categoria.
24/02/2015 113 24/02/2015 114

19
24/02/2015

3 MPLAB® SIM 3 MPLAB® SIM


Build – Inserção de arquivo .ASM Build – Make – Out of date

USAREMOS

24/02/2015 115 24/02/2015 116

3 MPLAB® SIM 3 MPLAB® SIM


Correção do “warning” Build – Make – Up to date
Correção

• Nesta operação, o “warning” apresentado


no slide anterior já foi resolvido.
• A correção do código foi feita com base nas
informações fornecidas na janela “output”.
24/02/2015 117 24/02/2015 118

3 MPLAB® SIM 3 MPLAB® SIM


Out of date Out of date
• Durante a montagem , vários arquivos são gerados • Se algum arquivo do projeto aberto sofreu
automaticamente, relacionados ao arquivo .ASM alguma alteração, o nome do arquivo recebe um
fornecido pelo usuário. asterisco e o projeto é considerado out of date.
• Na montagem , o MPLAB® salva, automaticamente, o • A montagem out of date consiste de:
arquivo .ASM; não há solicitação de confirmação;
• Verificação
ç de erros
cuidado deve ser tomado para não perder informações.
informações
• Gravação do arquivo .ASM.
• Como todos os arquivos relacionados ao projeto são
salvos ao mesmo tempo, todos tem a mesma data. • Gravação dos demais arquivos.
• Se o arquivo .ASM é mais antigo do que os demais • Gravação da program memory.
arquivos, o projeto é considerado out of date. • As gravações ocorrem somente em montagem
• Se os arquivos gerados automaticamente não são bem sucedida.
encontrados durante a montagem , o projeto é
considerado out of date.
24/02/2015 119 24/02/2015 120

20
24/02/2015

3 MPLAB® SIM 3 MPLAB® SIM


Up to date Up to date
• Muito cuidado tem que ser tomado ao lidar com um
• Ao término de uma montagem bem sucedida, o projeto up of date.
projeto é considerado up of date. • Ao executar o programa (Run), o MPLAB® não avisa
• Se o arquivo .ASM tem a mesma data dos demais para montar novamente o projeto up of date.
arquivos, o projeto é considerado up of date. • A execução diz respeito à program memory e não,
• Se
S nenhum h arquivo
i d projeto
do j t aberto
b t sofreuf necessariamente, ao arquivo .ASM do projeto.
alteração, o projeto é considerado up of date. • Se a program memory não corresponde ao arquivo
• Quanto o projeto está up of date, o montador não .ASM, a execução não fará sentido para o usuário.
realiza as três primeiras tarefas, faz, apenas, a • Esse problema ocorre quando foi montado um projeto
escrita da program memory. e, depois, o arquivo .ASM do projeto foi trocado por
outro, que já foi montado em outra ocasião.
• Como o novo arquivo .ASM é considerado up of date, o
24/02/2015 121 MPLAB ® não força uma nova montagem na execução
24/02/2015 122

3 MPLAB® SIM 3 MPLAB® SIM


Montagem Program Memory

• Por precaução, convém, sempre que for feita alguma


alteração relevante no projeto, montar o projeto antes
de executá-lo.
• Não é recomendado executar diretamente o programa
fi d que o MPLAB® verificará
confiando ifi á se a program
memory condiz com o arquivo .ASM em questão.
• A montagem pode ser pulada se o usuário tiver
consciência de que realizou alterações invisíveis ao
montador, como, por exemplo, comentários.

24/02/2015 123 24/02/2015 124

3 MPLAB® SIM 3 MPLAB® SIM


Program Memory – coluna “disassembly” Program Memory – coluna “opcode”
• A coluna “opcode” apresenta o código hexadecimal que
é enviado ao chip na gravação.
• A coluna “disassembly” apresenta o código
.asm puro, sem as simplificações permitidas • O código é formado por 14 bits.
no ambiente de edição. • O valor máximo é 3FFFh.
• O programa pode ser construído pelo usuário • Como as memórias operam em lógica negativa, uma
diretamente na coluna “disassembly”. posição apagada apresenta o valor máximo.
• Se um comando inválido for digitado, o editor • Um valor acima do máximo é reduzido automaticamente.
fornece uma mensagem de erro. • O programa pode ser construído pelo usuário
diretamente na coluna “opcode”.
• Esta é a forma de programação manual do chip.
• No passado, a programação era realizada desta forma.

24/02/2015 125 24/02/2015 126

21
24/02/2015

3 MPLAB® SIM 3 MPLAB® SIM


Opcode e Disassembly Program Memory
• A relação entre opcode e disassembly é biunívoca. Linha 1
2805h = 10 1000 0000 0101 b
• Um opcode gera um e apenas um código disassembly.
Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0
• Um código disassembly gera um e apenas um opcode. GOTO 10 1kkk kkkk kkkk

Desmontagem
k = 000 0000 0101 b
Opcode Disassembly k= 5 h

Montagem
• É necessário saber realizar, manualmente, a
montagem e a desmontagem da operação,
24/02/2015 127 24/02/2015 128
com base na folha de dados do chip.

3 MPLAB® SIM 3 MPLAB® SIM


Program Memory Status Register

Banco 0
003h, (banco 0)
083h, (banco 1)
103h, (banco 2)
183h, (banco 3)
Banco 1

003h, opcode
Banco 2
A posição indicada por ORG contem o apontador para a posição inicial da flash, 5.

Banco 3
24/02/2015 129 24/02/2015 130

3 MPLAB® SIM 3 MPLAB® SIM


Seleção de banco de memória Seleção de banco de memória
• Quando um mesmo registrador possui endereço
;banco 0 ;banco 1
em mais de um banco da SRAM, seus valores BCF STATUS,RP1 BCF STATUS,RP1
são sempre os mesmos em todos os bancos. BCF STATUS,RP0 BSF STATUS,RP0

• Ao endereçar um registrador pelo seu nome, e o


registrador está contido no banco vigente, não é
preciso preocupar-se com seu endereço ;banco 2 ;banco 3
numérico, pois o endereço de 7 bits é o mesmo BSF STATUS,RP1 BSF STATUS,RP1
BCF STATUS,RP0 BSF STATUS,RP0
em todos os bancos onde o registrador aparece.
• Usando rótulo, também não há preocupação
com bancos, desde que o banco selecionado
contenha um dos endereços do registrador.

24/02/2015 131 24/02/2015 132

22
24/02/2015

3 MPLAB® SIM 3 MPLAB® SIM


Seleção de banco de memória Seleção de banco de memória
BSF STATUS,RP1
BSF STATUS,RP0 Banco 3 BSF STATUS,RP0
BCF STATUS,RP1
0 1 Banco 0 BCF STATUS,RP0
00 01 1703 BSF 0x3, 0x6
BCF STATUS,RP0 1683 BSF 0x3, 0x5 Uso do endereço status
1303 BCF 0x3,
, 0x6 eg s e pe
register pelo
o ba
banco
co 0
1283 BCF 0x3, 0x5
STATUS,RP1

STATUS,RP1
STATUS,RP1

STATUS,RP1
• Neste exemplo, a PIC® usa o endereço do status
register do banco 0 mesmo estando no banco 3.
BCF

BCF
BSF

BSF
• Isto se deve ao fato de que o endereçamento por 7 bits
BSF STATUS,RP0
coincide com o endereçamento por 9 bits no banxo 0.
2 3 • Em outras palavras, o endereçamento por 7 bits é feito
10 11 como se todos os registradores estivessem no banco 0.
24/02/2015 BCF STATUS,RP0 133 24/02/2015 134

4 MPLAB® ICD2 4 MPLAB® ICD2


Introdução

• ICD2 – In-chip debugger


• Permite a execução do programa dentro do
chip com a supervisão do MPLAB®.
MPLAB® ICD2 • A monitoração ocorre em tempo real.
• Permite a execução passo a passo.
• Comunicação via RS-232 ou USB.
• Não destinado para fins comerciais.

24/02/2015 135 24/02/2015 136

4 MPLAB® ICD2 4 MPLAB® ICD2


Visão geral Seleção do ICD2 Debugger

 Instalação
completa

http://www.microchip.com/stellent/groups/devtools_sg/documents/devtools/%7Eexport/en010046%7E26%7Een006096%7EPressReleaseLayout/118902-3.png

http://www.microchip.com/stellent/groups/devtools_sg/documents/devtools/%7Eexport/en010046%7E26%7Een006096%7EPressReleaseLayout/118902-1.png 
Instalação
24/02/2015 137 24/02/2015 mínima 138

23
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Seleção o ICD 2 Programmer Anternância entre debugger e programmer


Instalação
completa

Instalação
mínima

24/02/2015  139 24/02/2015 140

4 MPLAB® ICD2 4 MPLAB® ICD2


Configuração ICD 2 Configuração ICD 2


24/02/2015
 141 24/02/2015 142

4 MPLAB® ICD2 4 MPLAB® ICD2


Seleção da porta de comunicação com o PC Configuração a alimentação do kit

24/02/2015 143 24/02/2015 144

24
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Configurando a alimentação do kit Conexão
• Se a placa compatível com ICD2 possui comunicação
RS232, a alimentação deve vir por meio de fonte externa.
• Se a placa compatível com ICD2 possui comunicação
USB, a alimentação pode ser externa ou pela USB.
• A vantagem
g de usar alimentação pela USB é não precisar
adquirir e lidar com uma fonte externa.
• A vantagem de usar a alimentação externa é não
sobrecarregar a capacidade de fornecimento de corrente
da USB e garantir que esse fornecimento será mantido
durante uma gravação da PIC®.
• Usar fonte externa e configurar para alimentação pela
USB pode provocar estragos.
24/02/2015 145 24/02/2015 146

4 MPLAB® ICD2 4 MPLAB® ICD2


Conexão Envio do programa para o kit didático

• Se a placa compatível com ICD2 está sempre


conectada ao computador, então a opção pela conexão
automática deve ser escolhida; o usuário não precisa
preocupar-se em fazer essa conexão manualmente.
• Se a placa compatível com ICD2 é conectada
raramente ao computador, então a opção pela conexão
automática não deve ser escolhida pois isso gera uma
tentativa fracassada de conexão toda vez que o
MPLAB® é usado no modo ICD2.
• O manual do kit didático informa para
desabilitar esta opção.
• Se outro equipamento for usado, é
24/02/2015 147 24/02/2015 148
preciso ler o manual correspondente.

4 MPLAB® ICD2 4 MPLAB® ICD2


Resumo das configurações Configurando a porta serial
• O manual do kit didático informa
para usar esta configuração.

24/02/2015 149 24/02/2015 150

25
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Outras configurações Outras configurações

24/02/2015 151 24/02/2015 152

4 MPLAB® ICD2 4 MPLAB® ICD2


Outras configurações Outras configurações

24/02/2015 153 24/02/2015 154

4 MPLAB® ICD2 4 MPLAB® ICD2


Program Memory range MPLAB® ICD 2 Toolbar
Comandos desabilitados

• A faixa de posições da program memory


é determinada automaticamente na
ocasião da montagem do programa. Comandos desabilitados
• Sendo uma memória de gravação lenta,
esta determinação automática reduz o
tempo de gravação.

24/02/2015 155 24/02/2015 156

26
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Conexão Conexão – falha 1

Possíveis explicações:
• Kit desligado.
 • Kit desconectado.
• Defeito de natureza elétrica.
24/02/2015
 157 24/02/2015 158

4 MPLAB® ICD2 4 MPLAB® ICD2


Conexão – falha 2 Conexão – sucesso

Comandos habilitados

Código
MPLAB® em branco
Chip
• Erro na configuração do CH7.
• Colocar as quatro chaves para baixo.

24/02/2015 159 24/02/2015 160

4 MPLAB® ICD2 4 MPLAB® ICD2


Comandos Apagando o chip

• As memórias não voláteis são apagadas.


• A definição de memória apagada emprega lógica negativa.
• Os valores para memória apagada são:
Verifica se está apagado
• Flash: 3FFFh
Apaga o chip
• EEPROM: FFh
• Na verificação, ao encontrar o primeiro erro, o verificador
indica a localização do erro, o valor esperado, e o valor
encontrado.

24/02/2015 161 24/02/2015 162

27
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Comandos Verificando a memória

• Após a gravação da memória, convém realizar uma


verificação, para confirmar se o código foi gravado
corretamente.
Verifica a memória
• Ao encontrar o primeiro erro, o verificador indica a
localização do erro, o valor esperado, e o valor encontrado.
Lê o chip

Lê a EEPROM

24/02/2015 163 24/02/2015 164

4 MPLAB® ICD2 4 MPLAB® ICD2


Comandos Gravação

• Somente a flash é gravada.


Grava o chip • A EEPROM não é g gravada.
• A EEPROM pode ser lida no ICD2.
• A EEPROM é feita para ser escrita
somente durante a execução do programa.

24/02/2015 165 24/02/2015 166

4 MPLAB® ICD2 4 MPLAB® ICD2


Comandos do ICD2 programmer Comandos do ICD2 debugger

24/02/2015 167 24/02/2015 168

28
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Limpeza e verificação Montagem

Após
• Apagar o chip e
• Ler o chip,
a program memory é:
• Antes da gravação, é preciso executar o comando make.
• Este programa preenche o campo program memory do
MPLAB® com o código montado.
Também é bom verificar se o
• Sempre que o MPLAB® considerar que o código
chip está mesmo em branco.
assembler não corresponde ao código montado,
localizado na program memory do MPLAB®, haverá
24/02/2015 169
solicitação para que se execute a montagem.
24/02/2015 170

4 MPLAB® ICD2 4 MPLAB® ICD2


Gravação e verificação Gravação e verificação

• Na verificação, antes de ler


o chip, é recomendado Após:
fazer um fill memory. • Gravar o chip.
• Isto garante que a • Ler o chip.
informação exibida
e ibida veio
eio do A program memory é:
chip e não do MPLAB®.
• Também é bom verificar se
o chip não está em branco.

24/02/2015 171 24/02/2015 172


Este programa veio do chip.

4 MPLAB® ICD2 4 MPLAB® ICD2


Reiniciando a execução Gravando o chip – comando program

24/02/2015 173 24/02/2015 174

29
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Executanto passo a passo (step into) Supervisionando a execução passo a passo
RESET

24/02/2015 175 24/02/2015 176

4 MPLAB® ICD2 4 MPLAB® ICD2


Adicionando os registradores usados Verificando alteração nos registros

24/02/2015 177 24/02/2015 178

4 MPLAB® ICD2 4 MPLAB® ICD2


Mensagens de erro Mensagens de erro
• Houve tentativa de rodar o programa (comando “RUN”) sendo • Houve tentativa de rodar o programa (comando “RUN”) sendo
que o MPLAB® suspeita que houve alguma alteração no que o MPLAB® suspeita que a program memory do MPLAB®
projeto após a última montagem. seja diferente da program memory do chip.
• Se o usuário tem certeza de esta alteração não interferirá no • Se o usuário tem certeza de que não há alterações, pode
código montado, pode pressionar o botão “NO”. pressionar o botão “OK”.
• S
Se nãoã hhouver estat certeza,
t convém
é selecionar
l i “YES”
“YES”, iisto
t • Se
S nãoã houver
h esta
t certeza,
t convém
é cancelar
l a execução
ã do
d
realizará uma nova montagem (comando “MAKE”). programa e fazer uma compilação (comando “MAKE”).

24/02/2015 179 24/02/2015 180

30
24/02/2015

4 MPLAB® ICD2 4 MPLAB® ICD2


Mensagens de erro Etapas do projeto
Montagem Gravação
• Houve uma tentativa de executar um código montado em Make Program Execução
um outro ambiente, como, por exemplo, o MPLAB® SIM. Build Run
• Eventualmente, diferenças poderão existir.
• Por segurança, compensa montar novamente o programa.
ICD2
Criação do Geração do Gravação Execução do
código “.asm” código montado do chip código no chip

Execução
Run

Execução do
24/02/2015 181 24/02/2015
MPLAB® SIM código no182
MPLAB®

4 MPLAB® ICD2 4 MPLAB® ICD2


Gravação manual Gravação manual
• É possível programar e gravar o chip sem o uso da
linguagem MPASM™ ou de assembler puro.
Programação pelo opcode
• Também é possível gravar o chip sem a necessidade de
executar o programa pelo ICD 2.
• Não é necessário criar um projeto “MCW”.
• O programa é digitado diretamente na Program Memory
do MPLAB®. Programação pelo disassembly

• Pode-se digitar os valores de opcode ou de disassembly.


• Se houver algum projeto aberto, deve-se fechá-lo, para
que outros arquivos não sejam incluídos (menu
“project””, opção “close”).
• Não há verificação de erros.
24/02/2015 183 24/02/2015 184
Não há MCW nem MCP.

4 MPLAB® ICD2 4 MPLAB® ICD2


Gravação manual Gravação manual

• Antigamente, os primeiros programas de gravação de • As primeiras versões usavam, apenas, os opcodes.


MCU’s permitiam, apenas, a gravação manual. • Os usuários deveriam ser capazes de obter, manualmente, os
• O arquivo com o programa era feito com um editor de textos. opcodes para cada instrução juntamente com os operandos.
• O nome do arquivo texto era usado como argumento. • Versões posteriores aceitavam arquivos com código
assembler e faziam a conversão para os opcodes.
opcodes
• O programa gravador era chamado na linha de comando.
• Mais tarde, vieram versões que faziam uma limitada busca
• Exemplo: C:\micro\gravador.exe /luzinhas.txt
por erros.
• “gravador.exe” é o programa gravador do chip.
• Por fim, vieram programas que permitiam ao usuário executar
• “luzinhas.txt” é o programa a ser gravado no chip. o programa no computador ou no chip, na busca por erros.

24/02/2015 185 24/02/2015 186

31

Das könnte Ihnen auch gefallen