1.1. visÃo geral visÃo geral mplab ide sim - ufsj.edu.br · • ide – integrated ......

31
24/02/2015 1 MPLAB ® IDE 1 24/02/2015 MPLAB ® IDE 1. 1. VISÃO GERAL VISÃO GERAL 2. 2. MPASM MPASM™ 2 24/02/2015 3. 3. MPLAB MPLAB ® SIM SIM 4. 4. MPLAB MPLAB ® ICD2 ICD2 VISÃO GERAL VISÃO GERAL 1 VISÃO GERAL VISÃO GERAL 3 24/02/2015 VISÃO GERAL VISÃO GERAL VISÃO GERAL VISÃO GERAL 1 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. MPLAB ® 4 24/02/2015 O MPLAB ® permite programar MCU da família PIC ® . VISÃO GERAL VISÃO GERAL 1 MPLAB ® 5 24/02/2015 VISÃO GERAL VISÃO GERAL 1 Editor de texto para entrada do código. Debugging do código. Simulador de PIC ® e de dsPIC ® . MPLAB ® 6 24/02/2015 Assembler (Montador). Compilador C. Outros itens.

Upload: vunhan

Post on 01-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

24/02/2015

1

MPLAB® IDE

124/02/2015

MPLAB® IDE1.1. VISÃO GERALVISÃO GERAL2.2. MPASMMPASM™™

224/02/2015

3.3. MPLABMPLAB®® SIMSIM4.4. MPLABMPLAB®® ICD2ICD2

VISÃO GERALVISÃO GERAL1

VISÃO GERALVISÃO GERAL

324/02/2015

VISÃO GERALVISÃO GERAL

VISÃO GERALVISÃO GERAL1

• 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.

MPLAB®

424/02/2015

• O MPLAB® permite programar MCU da família PIC®.

VISÃO GERALVISÃO GERAL1MPLAB®

524/02/2015

VISÃO GERALVISÃO GERAL1

• Editor de texto para entrada do código.

• Debugging do código.

• Simulador de PIC® e de dsPIC®.

MPLAB®

624/02/2015

• Assembler (Montador).

• Compilador C.

• Outros itens.

24/02/2015

2

VISÃO GERALVISÃO GERAL1Suporte

724/02/2015

VISÃO GERALVISÃO GERAL1Página na internet

824/02/2015

VISÃO GERALVISÃO GERAL1Download do MPLAB® IDE 8.91

924/02/2015

VISÃO GERALVISÃO GERAL1Componentes disponíveis

1. Serial Memory Devices2. 8-bit MCUs and KeeLoq devices.3. 16-bit MCUs and DSCs4. 32 bit MCUs5. REAL ICE CMD6. ICD 3 Cmd7. PK3CMD8. Procmd9. PM3Cmd10. Visual Procmd11 MPASM S it

23. PICkit24. PICkit225. PICkit326. MPLAB ICE 200027. MPLAB ICE 400028. MPLAB REAL ICE29. KEELOQ30. MPLAB PIC32 Starter Kit31. MPLAB Serial Memory Products Starter Kit32. MPLAB dsPIC Starter Kit33 A li ti M t

USAREMOS

1024/02/2015

11. MPASM Suite12. ASM30 Suite13. MPLAB C32 Suite14. HI-TECH C for PIC10/12/16 MCUs, Lite or PRO Edition15. MPLAB IDE16. MPLAB PM317. PICSTART Plus18. PRO MATE II19. MPLAB ICD 220. MPLAB ICD 321. MPLAB SIM22. AN 851 FLASH Bootloader

33. Application Maestro34. CCS PCB C Compiler, Microchip MPLAB IDE Edition35. Target Application I/O Display36. Data Monitor and Control Interface37. AN908 ACIM Tuning Interface38. Real Time OS Viewer39. MATLAB40. PCLint41. SMPS GUI42. LCD Designer43. dsPIC Filter Designer44. mTouch GUI45. dsPIC Works Plug-in

USAREMOS

USAREMOS

VISÃO GERALVISÃO GERAL1Componentes usados neste curso

• MPASM™ (MPLAB® assembler)

• Permite editar um arquivo de código assembler.

• Gera o arquivo binário para ser enviado ao chip.

• Permite o uso das extensões do MPLAB® assembler.

1124/02/2015

• MPLAB® SIM (simulator)

• Simula, no computador, um chip real.

• O arquivo binário é enviado ao chip virtual.

• Todas as variáveis do chip real podem ser lidas e escritas.

VISÃO GERALVISÃO GERAL1Componentes usados neste curso

• MPLAB® ICD2(in-chip designer)

• Permite a execução do programa no chip real.

• Permite a gravação do programa no chip

1224/02/2015

• Permite a gravação do programa no chip.

• Permite a recuperação de um programa já gravado.

• Todas as variáveis do chip real podem ser lidas e escritas.

24/02/2015

3

VISÃO GERALVISÃO GERAL1Componentes usados neste curso

USAREMOS

1324/02/2015

USAREMOS

USAREMOS

VISÃO GERALVISÃO GERAL1Componentes usados neste curso

1424/02/2015

VISÃO GERALVISÃO GERAL1Ícone do programa

1524/02/2015

VISÃO GERALVISÃO GERAL1Ambiente de trabalho

1624/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

1724/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

1824/02/2015

24/02/2015

4

VISÃO GERALVISÃO GERAL1Project Wizard

1924/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

2024/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

• MPASM™ : Usado para montar um programa.

• MPLINK™ : Usado para juntar programas ou bibliotecas

USAREMOS

2124/02/2015

• MPLINK™ : Usado para juntar programas ou bibliotecas.

• MPLIB™ : Usado para criar uma biblioteca de rotinas.

VISÃO GERALVISÃO GERAL1Project Wizard

2224/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

2324/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

2424/02/2015

24/02/2015

5

VISÃO GERALVISÃO GERAL1Project Wizard

2524/02/2015

VISÃO GERALVISÃO GERAL1Project Wizard

2624/02/2015

VISÃO GERALVISÃO GERAL1Onde obter ajuda

2724/02/2015

USAREMOS

VISÃO GERALVISÃO GERAL1Barra de stado – Stats bar

ClockBanco da

SRAMDependendo do que o programa estiver exibindo,outros itens podem aparecer no status bar.

2824/02/2015

Debugger MCU

ProgramCounter

WorkRegister

(Acumulator)

Status Register

Bit 0 – C – Carry

Bit 1 – DC – Digit Carry

Bit 2 – Z – Zero

Minúsculo: 0

Maiúsculo: 1

VISÃO GERALVISÃO GERAL1Projeto

2924/02/2015

VISÃO GERALVISÃO GERAL1Seleção do dispositivo

Os recursos emverde são aceitospelo dispositivoOs recursos em

3024/02/2015

pelo dispositivo,mesmo se nãotiverem sidoinstalados.

vermelho nãoestão disponíveispara o dispositivoselecionado.

24/02/2015

6

VISÃO GERALVISÃO GERAL1Seleção do dispositivo

USAREMOS

3124/02/2015

Barra de ferramentas do MPLAB® SIM.

USAREMOSUSAREMOS

MPASMMPASM™™2

MPASMMPASM™™

3224/02/2015

MPASMMPASM™™

MPASMMPASM™™2

• 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:

• MPASM™ assembler v5.44.

Componentes

USAREMOS

3324/02/2015

• MPLINK™ object linker v4.42.

• MPLIB™ object librarian v4.42.

MPASMMPASM™™2Componentes

USAREMOS

3424/02/2015

MPASMMPASM™™2Elementos de um projeto

USAREMOS

3524/02/2015

• MCW: MicroChip Workspace.

• MCP: MicroChip Project.

MPASMMPASM™™2Elementos de um projeto

• É necessário que exista um MCP.

• Um arquivo “.ASM” pode ser abertofora de um MCP, apenas para

3624/02/2015

edição, não pode ser montado.• Um arquivo aberto fora do MCP não

é incluído na montagem.

24/02/2015

7

MPASMMPASM™™2

• Assembler para PIC1X.

• Pode ser usado de duas formas:

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

• Geração de módulos (module).

• O arquivo com o código assembly pronto para

MPASM™

USAREMOS

q g y p pser montado possui a extensão “.ASM”.

• O arquivo com o módulo pronto para ser juntadopossui a extensão “.LIB”.

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

3724/02/2015

USAREMOS

USAREMOS

MPASMMPASM™™2Geração do código para a MCU

Montagem Programação

3824/02/2015

MPASMMPASM™™2Geração do módulo para o MPLINK™

• Módulos podem ser juntados (linked) para formar umprograma maior.

• A união de módulos é feita no MPLINK™.

• Módulos podem ser reusados em outros programas.

3924/02/2015

MPASMMPASM™™2Geração do módulo para o MPLINK™

4024/02/2015

MPASMMPASM™™2Arquivos de entrada do MPASM™

• ASM – Código fonte.

• INC Referência de inclusão

4124/02/2015

• INC – Referência de inclusão,usado no cabeçalho (header).

MPASMMPASM™™2Arquivos 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.

• LST – Arquivo de listagem (assembler/compiler).

4224/02/2015

• MAP – Arquivo de mapa (linker).

• 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

8

MPASMMPASM™™2Visualizações

As opções desabilitadas nãoestão disponíveis para omodelo de MCU escolhido

4324/02/2015

modelo de MCU escolhido.

MPASMMPASM™™2Conversão para disassembly

4424/02/2015

Do arquivo .ASMdigitado pelo usuário.

Disassembly

Opcodes

MPASMMPASM™™2Conversão para disassembly - ferramentas

4524/02/2015

MPASMMPASM™™2EEPROM

4624/02/2015

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

MPASMMPASM™™2EEPROM – ferramntas

4724/02/2015

MPASMMPASM™™2Registradores – SRAM

4824/02/2015

32 colunas.

16 linhas.

32 16 = 512.

368 gerais.

144 específicos.

24/02/2015

9

MPASMMPASM™™2Registradores – SRAM

Ban

co0

nco

1

4924/02/2015

Ba

Ban

co2

Ban

co3

As posições desabilitadas não permitem alteração.

MPASMMPASM™™2Registradores – SRAM

5024/02/2015

MPASMMPASM™™2Registradores – SRAM – ferramentas

• Erradamente, os registrado-res presentes em dois ou

5124/02/2015

quatro bancos, aparecem,apenas, no banco 0.

• Seus endereços nos demaisbancos constam comoGPR’s, mas são SFR’s.

MPASMMPASM™™2Pilha

• Esta janela apresenta a pilha como ela realmentefunciona.

• É diferente da forma como é mostrada nos livros.

• Para iniciantes, isto pode gerar confusão.

5224/02/2015

Indicativo de pilha vazia

MPASMMPASM™™2Variáveis locais

5324/02/2015• Usado no compilador.

• Não usado no montador.

MPASMMPASM™™2Program Memory (14 bits)

5424/02/2015

• Valor máximo: 3FFFh.

• Endereço máximo: 1FFFh.

24/02/2015

10

MPASMMPASM™™2Program Memory (14 bits)

5524/02/2015

• São 8192 linhas.• Faixa: 0000h a 1FFFh (13 bits).

• São 14 bits para o opcode.• Faixa: 0000h a 3FFFh (14 bits).

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

5624/02/2015

• É recomendada a remoção dacoluna “line”.

• Essa coluna começa em “1”, o alunopode assumir esse valor comosendo o endereço, mas não é.

MPASMMPASM™™2Registradores específicos

5724/02/2015

MPASMMPASM™™2Registradores 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.

5824/02/2015

• Erradamente, os registradores presentes em doisou quatro bancos, aparecem, apenas, no banco 0

• Seus endereços nos demais bancos constamcomo GPR’s, mas são SFR’s.

MPASMMPASM™™2Registradores específicos

WREG000 INDF001 TMR0002 PCL003 STATUS004 FSR005 PORTA006 PORTB007 PORTC008 PORTD009 PORTE

01B CCPR201B CCPR2L01C CCPR2H01D CCP2CON01E ADRESH01F ADCON0081 OPTION_REG085 TRISA086 TRISB087 TRISC088 TRISD

5924/02/2015

00A PCLATH00B INTCON00C PIR100D PIR200E TMR100E TMR1L00F TMR1H010 T1CON011 TMR2012 T2CON013 SSPBUF014 SSPCON015 CCPR1015 CCPR1L016 CCPR1H017 CCP1CON018 RCSTA019 TXREG01A RCREG

088 TRISD089 TRISE08C PIE108D PIE208E PCON091 SSPCON2092 PR2093 SSPADD094 SSPSTAT098 TXSTA099 SPBRG09E ADRESL09F ADCON110C EEDATA10D EEADR10E EEDATH10F EEADRH18C EECON118D EECON2

MPASMMPASM™™2Registradores específicos

• O SFR name pode serusado na programação.

• O assembler puro não

6024/02/2015

permite o uso do SFR name.

• O uso do SFR name é umrecurso do MPASM™.

24/02/2015

11

MPASMMPASM™™2Inspeção de registradores

6124/02/2015

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

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

MPASMMPASM™™2

• Os SFR’s podem ser chamados, no programa, pelosseus endereços reais ou pelo seus nomes.

• O nome é convertido para o endereço no disassembly.

Registradores específicos

6224/02/2015

MPASMMPASM™™2Bits dos SFR’s

• Os bits dos SFR’spodem ser chamados,no programa, pelosseus endereços reaisou pelo seus nomes.

• O endereço do bit

6324/02/2015

• O endereço do bitvaria de zero a sete.

• O nome é convertidopara o endereço nodisassembly.

MPASMMPASM™™2Mnemônicos

Tipo Exemplos DisassemblyDe instrução NOP, ADDLW, CALL Sim

De SFR INDF, INTCON, STATUS Não

6424/02/2015

De bits de SFR C, Z, DC, GIE, RP0 Não

De controle W, F Não

Rótulo Não

• Ao falar em mnemônico, sem especificaro tipo, considera-se o de instrução.

MPASMMPASM™™2Uso de memória

6524/02/2015

Flash213=8192

SRAMRegistradores de uso geral

MPASMMPASM™™2Uso de memória

6624/02/2015

24/02/2015

12

MPASMMPASM™™2Bits de configuração

6724/02/2015

• São flags armazenados nos registradores de usoespecíficos.

• Permite a configuração do estado inicial da MCU.

• Tais parâmetros podem ser configurados peloprograma ou manualmente nesta janela.

MPASMMPASM™™2Bits de configuração

6824/02/2015

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

• As opções são fornecidas intuitivamente.

• Uso da configuração pelo MPLAB®: Útil quando todos osprogramas usam a mesma configuração em um computadorespecífico.

• Uso da configuração pelo programa: Útil quando cadaprograma usa uma configuração diferente ou quando se usacomputadores públicos.

MPASMMPASM™™2Bits de configuração

E d d fi ti V l d

6924/02/2015

Endereço do configuration word na flash

Valor do configuration word

MPASMMPASM™™2Código fonte (.ASM)

• Qualquer editor de texto compatível com ASCII pode serusado 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 pode conter quatro tipos de informação:

7024/02/2015

p q p

• 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.

MPASMMPASM™™2Colunas

• Coluna 1: Label Rótulo

• Coluna 2:

• Mnemonic Mnemônico

• Directive DiretivaUSAREMOS

USAREMOS

USAREMOS

7124/02/2015

• Directive Diretiva

• Macro Macro

• Coluna 3: Operands Operandos

• Coluna 4: Comments ComentáriosUSAREMOS

USAREMOS

MPASMMPASM™™2Exemplo

7224/02/2015

24/02/2015

13

MPASMMPASM™™2Colunas

• Elementos:

• Rótulo

• Mnemônico

• Diretiva

• Macro

7324/02/2015

Macro

• Operandos

• Comentários.

• Somente os Mnemônicos e operandos fazemparte do código assembly puro.

• Rótulos, diretivas, macro e comentários não sãoessenciais, são acréscimos disponibilizados noMPLAB® e não são enviados ao chip.

MPASMMPASM™™2Rótulo (Label)

• Coluna 1

• Pode conter qualquer texto, exceto:

• Começar com dois underscores consecutivos.

7424/02/2015

• Começar com um underscore seguido por um número.

• Ser uma palavra reservada do assembler.

• Ser maior do que 32 letras.

MPASMMPASM™™2Mnemônico

• Coluna 2

• É um comando inserido no código.

• Define a instrução a ser montada

7524/02/2015

• Define a instrução a ser montada.

• São determinados pela linguagem assembly.

• Não depende do tamanho da letra, o padrão é maiúsculo.

MPASMMPASM™™2Diretiva

• Coluna 2

• É um comando inserido no código.

• Não está associado a uma instrução.

• Usado para controlar a montagem

7624/02/2015

• Usado para controlar a montagem.

• Não depende do tamanho da letra.

• Não gera linha no código disassembly.

• Não é gravado no chip.

MPASMMPASM™™2Tipos de diretivas

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

2. Condicional.Define montagens condicionais.

Não define execução condicional

USAREMOS

7724/02/2015

Não define execução condicional.

3. De dados.Define variáveis simbólicas.

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

5. De macro.

6. De arquivo object.

USAREMOS

MPASMMPASM™™2Exemplos de diretivas

• #include Include Additional Source File

• #define Define a Text Substitution Label

• #undefine Delete a Substitution Label

USAREMOS

USAREMOS

USAREMOS

De controle

7824/02/2015

• Org Set Program Origin

• end End Program Block

USAREMOS

USAREMOS

• __config Set Processor Configuration BitsUSAREMOS

De dados

24/02/2015

14

MPASMMPASM™™2#INCLUDE

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

• O arquivo deve conter código assembly.

• O caminho para o arquivo deve ser conhecido.

• Se for arquivo de configuração de PIC® o

7924/02/2015

• Se for arquivo de configuração de PIC®, oMPLAB® já sabe o caminho.

• Vários arquivos podem ser incluídos.

• É uma diretiva de controle.

MPASMMPASM™™2Include File (.INC)

• Arquivo a ser anexado ao projeto.

• O include possui códigos em linguagem demontagem.

8024/02/2015

• Um include pode ser usado e reusado pordiversos códigos fonte.

MPASMMPASM™™2Include File (.INC)

8124/02/2015

USAREMOS

MPASMMPASM™™2

LIST

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

NOLIST

;==========================================================================Thi h d fil d fi fi ti i t d th f l

Include File (.INC)#INCLUDE <P16F877.INC>

; This header file defines configurations, registers, and other useful; 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; 4. Setting the processor in the MPLAB Project Dialog;==========================================================================

;==========================================================================;; Verify Processor;;==========================================================================

IFNDEF __16F877MESSG "Processor-header file mismatch. Verify selected processor."

ENDIF8224/02/2015

MPASMMPASM™™2Sintaxe da inclusão de arquivo

#include include_file#include "include_file"#include <include_file>

• São permitidas até 5 hierarquias.

Sã itid té 255 i l õ

USAREMOS

8324/02/2015

• São permitidas até 255 inclusões.

• Para arquivos do usuário, pode-se colocar o caminhocompleto.

• Exemplo: #include "c:\Program Files\mydefs.inc"

MPASMMPASM™™2Include File (.INC)

• A inclusão de arquivo de definição daPIC® (.INC) permite o uso de:

• Mnemônicos de SFR’s.

• Mnemônicos de bits de SFR’s.

8424/02/2015

• Mnemônicos do configuration word.

• Esses mnemônico e a atribuição do valornumérico está contida no próprio arquivo(.INC) e podem ser consultados.

• A não inclusão do arquivo de definiçãorequer o uso dos endereços reais.

24/02/2015

15

MPASMMPASM™™2Resultado de montagem sem #INCLUDE <P16F877.INC>----------------------------------------------------------------------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.43Preprocessor 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=1Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (RP1)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (RP0)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 11 : Symbol not previously defined (STATUS)Error[113] H:\2013 1\MICROPROCESSADORES\ASSEMBLER\PR ASM 11 : Symbol not previously defined (RP1)

8524/02/2015

Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 11 : Symbol not previously defined (RP1)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (RP0)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (RP1)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (RP0)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (RP1)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (STATUS)Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (RP0)Halting build on first failure as requested.----------------------------------------------------------------------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.43Preprocessor symbol `__DEBUG' is defined.Thu Jul 11 19:49:22 2013----------------------------------------------------------------------BUILD FAILED

MPASMMPASM™™2#DEFINE e #UNDEFINE

• Atribui um nome a um número.

• Este procedimento facilita a compreensão do código.

• A atribuição pode ser desfeita.

8624/02/2015

• São diretivas de controle.

• O tamanho do número deve ser coerente com a aplicação.

• Se necessário, o MPASM™ corrige o erro removendo osbits mais significativos.

MPASMMPASM™™2#DEFINE e #UNDEFINE

Aplicação Tamanho (bits)Dado 8

8724/02/2015

File – direto 7

File – indireto 8

Program Memory 11

Bit 3

MPASMMPASM™™2ORG

• Indica o endereço de início do programa na flash.• Se não for definido, o início é colocado em 0000h.

• É uma diretiva de controle.• O interrupt vector localiza-se na posição 0004h.

8824/02/2015

• Se este recurso for empregado, o programa deveiniciar na posição 0005h ou superior.

• Neste caso, a diretiva ORG deve ser usada e oreset vector deve ter a instrução GOTO direcionadaao endereço chamado na diretiva ORG.

MPASMMPASM™™2Program Memory

8924/02/2015

MPASMMPASM™™2END

• Indica o final do programa.• Todo programa deve ter um end.

• O programa deve ter apenas um end

9024/02/2015

• O programa deve ter apenas um end.

• Nenhum arquivo incluído pode conter um end.

• É uma diretiva de controle.

24/02/2015

16

MPASMMPASM™™2Macro

• Coluna 2

• É uma sequência de instruções ou de diretivas

9124/02/2015

q çque são executadas paralelamente à execuçãodo código assembly assim que forem invocadas.

MPASMMPASM™™2Operando

• Coluna 3

• Gera linha no código disassembly.

• As instruções podem usar um, dois ounenhum operando.

• Operandos fornecem informações numéricas

9224/02/2015

p çnecessárias à execução da instrução.

• Os números podem ser indicados por labels.

• O operando é colocado depois (à direita) domnemônico, separado por um ou maisespaços ou tabulações.

• Múltiplos operandos são separados um dooutro por meio de vírgula.

MPASMMPASM™™2Operandos para a família mid-range01 ANDWF f,d02 IORWF f,d03 XORWF f,d04 ADDWF f,d05 SUBWF f,d06 COMF f d

15 BCF f,b16 BSF f,b17 BTFSC f,b18 BTFSS f,b

23 ANDLW k24 IORLW k25 XORLW k26 ADDLW k27 SUBLW k

19 CLRF f

9324/02/2015

06 COMF f,d07 INCF f,d08 DECF f,d09 INCFSZ f,d10 DECFSZ f,d11 RLF f,d12 RRF f,d13 SWAPF f,d14 MOVF f,d

30 CLRW31 NOP32 CLRWDT33 SLEEP34 RETFIE35 RETURN

28 MOVLW k29 RETLW k

21 GOTO k22 CALL k

19 CLRF f20 MOVWF f

MPASMMPASM™™2Comentário

• Coluna 4

• São textos explicativos para acompreensão do código.

• São precedidos por ponto-e-vírcula.

T d t úd à di it d t í l

9424/02/2015

• Todo conteúdo à direita do ponto-e-vírculaé ignorado pelo montador.

• Ponto-e-vírgula contido em uma cadeia(string) não é considerado, pelo montador,como o início de um comentário.

• Quando o comentário diz respeito aoprograma todo ou a um bloco doprograma, é melhor usar a coluna 1.

MPASMMPASM™™2Cores

9524/02/2015

• Azul: Header, diretivas e mnemônicos

• Verde: Comentários

• Vermelho: Operandos

• Preto: Constantes

Estas cores podem ser alteradas.

MPASMMPASM™™2Tipos de números

Tipo Sintaxe Exemplo

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

Octal O'dígitos' O'777'

9624/02/2015

g

Decimal D'dígitos'.'dígitos'

D'100' .100

Hexadecimal H'dígitos' 0xhex_digits

H'9f' 0x9f

ASCII A'dígitos''dígitos'

A'C' 'C'

USAREMOS

• A base padrão é a decimal.

• Se a base não for especificada, assume-se decimal.

24/02/2015

17

MPASMMPASM™™2Configuração da frequência de operação

9724/02/2015

MPASMMPASM™™2Usando “f” abaixo de 15kHz

9824/02/2015

• Não é possível aumentar muito otempo da contagem abaixando afrequência de operação.

• A solução é aumentar a quantidadede bytes de contagem.

MPASMMPASM™™2Operações do MPASM™

• O MPASM™ permite o uso de operaçõesmatemáticas em lugar dos operandos.

• Essas operações são realizadas pelo

9924/02/2015

• Essas operações são realizadas peloMPASM™ na geração do códigodisassembly antes da montagem.

MPASMMPASM™™2

$ Current/Return program counter( Left Parenthesis) Right Parenthesis! Item NOT (logical complement) - Negation (2's complement) ~ Complementlow1 Return low byte of address high1 Return high byte of address

== Equal to != Not equal to & Bitwise AND ^ Bitwise exclusive OR | Bitwise inclusive OR && Logical AND || Logical OR = Set equal to

Operações em ordem de precedência

10024/02/2015

upper1 Return upper byte of address * Multiply/ Divide % Modulus+ Add- Subtract<< Left shift>> Right shift>= Greater or equal> Greater than< Less than<= Less or equal

+= Add to, set equal-= Subtract, set equal*= Multiply, set equal/= Divide, set equal%= Modulus, set equal<<= Left shift, set equal>>= Right shift, set equal&= AND, set equal|= Inclusive OR, set equal^= Exclusive OR, set equal++ Increment2

-- Decrement2

MPASMMPASM™™2Bits de configuração

1.FOSC Oscillator Selection bits2 W t hd Ti E bl bit

10124/02/2015

2.WDTE Watchdog Timer Enable bit3.PWRTE Power-up Timer Enable bit4.CP FLASH Program Memory Code Protection bits5.BOREN Brown-out Reset Enable bit6.LVP Low Voltage In-Circuit Serial Programming Enable bit7.CPD Data EE Memory Code Protection bit8.WRT FLASH Program Memory Write Enable bit

MPASMMPASM™™2Bits 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_OFFend

10224/02/2015

• O uso dos minemônicos de configuração requer adefinição da PIC®; #include <p16f877.inc>.

• Sem o arquivo de inclusão, é preciso escrever ocódigo correspondente.

24/02/2015

18

MPASMMPASM™™2Bits de configuração

_FOSC_LP 3FFCh 11111111111100b LP oscillator

_FOSC_XT 3FFDh 11111111111101b XT oscillator

_FOSC_HS 3FFEh 11111111111110b HS oscillator

_FOSC_EC 3FFFh 11111111111111b ECIO; port I/O function on RA6/OSC2/CLKO

_LP_OSC 3FECh 11111111111100b LP oscillator

_XT_OSC 3FEDh 11111111111101b XT oscillator

_HS_OSC 3FEEh 11111111111110b HS oscillator

_EXTCLK 3FEFh 11111111111111b ECIO; port I/O function on RA6/OSC2/CLKO

10324/02/2015

_FOSC_INTOSCIO 3FFChINTRC oscillator

port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin

_FOSC_INTOSCCLK 3FFDhINTRC oscillator

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

_FOSC_EXTRCCLK 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO

_INTRC_IO 3FFChINTRC oscillator

port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin

_INTRC_CLKOUT 3FFDhINTRC oscillator

CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin

_EXTRC_IO 3FFEh EXTRC oscillator; port I/O function on RA6/OSC2/CLKO

_EXTRC_CLKOUT 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO

MPASMMPASM™™2Bits de configuração

_WDTE_OFF_WDT_OFF

3FFBh WDT disabled

_WDTE_ON_WDT_ON

3FFFh WDT enabled

_BOREN_OFF_BODEN_OFF

3FBFh BOR disabled

_BOREN_ON_BODEN_ON

3FFFh BOR enabled

10424/02/2015

_PWRTE_ON 3FF7h PWRT enabled

_PWRTE_OFF 3FFFh PWRT disabled

_MCLRE_OFF_MCLR_OFF

3FDFh RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD

_MCLRE_ON_MCLR_ON

3FFFh RA5/MCLR/VPP pin function is MCLR

_CCPMX_RB3_CCP1_RB3

2FFFh CCP1 function on RB3

_CCPMX_RB0_CCP1_RB0

3FFFh CCP1 function on RB0

MPASMMPASM™™2Bits de configuração

_CPD_ON 3EFFh Data EE memory code‐protected

_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)

_CP_OFF 3FFFh Code protection off

_WRT_ALLWRT_PROTECT_ALL

39FFh 0000h to 0FFFh write‐protected

WRT 2048 3BFFh 0000h to 07FFh write‐protected 0800h to 0FFFh may be modified by EECON control

10524/02/2015

_WRT_2048 3BFFh 0000h to 07FFh write protected, 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

_WRT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control

_WRT_PROTECT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control

_WRT_OFF_WRT_PROTECT_OFF

3FFFh Write protection off

_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

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

_LVP_ON 3FFFh RB3/PGM pin has PGM function, Low‐Voltage Programming enabled

MPASMMPASM™™2Bits 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_OFFend

_XT_OSC 3FEDh

_WDT_OFF 3FFBh

_PWRTE_OFF 3FFFh

10624/02/2015

_CP_OFF 3FFFh

_DEBUG_ON 37FFh

_BODEN_ON 3FFFh

_LVP_OFF 3F7Fh

_CPD_OFF 3FFFh

3729h

; Bits de configuração#include <p16f877.inc>__config 0x3729end

MPLABMPLAB®® SIMSIM3

MPLABMPLAB®® SIMSIMMPLABMPLAB®® SIMSIM

10724/02/2015

MPLABMPLAB®® SIMSIM3Seleção do simulador

10824/02/2015

USAREMOS

24/02/2015

19

MPLABMPLAB®® SIMSIM3MPLAB® SIM Debuger Tools

10924/02/2015

MPLABMPLAB®® SIMSIM3Montagem

11024/02/2015

USAREMOS

MPLABMPLAB®® SIMSIM3Execução

Run sem o Make antes

Montagem

11124/02/2015

MPLABMPLAB®® SIMSIM3Build – Projeto em branco

Resultado do montagem

Project

11224/02/2015

MPLABMPLAB®® SIMSIM3Build – Projeto em branco

USAREMOS

11324/02/2015

• O projeto (.MCP) pode conter diversostipos de arquivos.

• O tipo “Source” se refere ao códigoassembler ou em linguagem de alto nível.

• É preciso que haja um arquivo nestacategoria.

MPLABMPLAB®® SIMSIM3Build – Inserção de arquivo .ASM

11424/02/2015

24/02/2015

20

MPLABMPLAB®® SIMSIM3Build – Inserção de arquivo .ASM

USAREMOS

11524/02/2015

MPLABMPLAB®® SIMSIM3Build – Make – Out of date

11624/02/2015

MPLABMPLAB®® SIMSIM3Correção do “warning”

Correção

11724/02/2015

MPLABMPLAB®® SIMSIM3Build – Make – Up to date

11824/02/2015

• Nesta operação, o “warning” apresentadono slide anterior já foi resolvido.

• A correção do código foi feita com base nasinformações fornecidas na janela “output”.

MPLABMPLAB®® SIMSIM3

• Durante a montagem , vários arquivos são geradosautomaticamente, relacionados ao arquivo .ASMfornecido pelo usuário.

• Na montagem , o MPLAB® salva, automaticamente, oarquivo .ASM; não há solicitação de confirmação;cuidado deve ser tomado para não perder informações

Out of date

11924/02/2015

cuidado deve ser tomado para não perder informações.

• Como todos os arquivos relacionados ao projeto sãosalvos ao mesmo tempo, todos tem a mesma data.

• Se o arquivo .ASM é mais antigo do que os demaisarquivos, o projeto é considerado out of date.

• Se os arquivos gerados automaticamente não sãoencontrados durante a montagem , o projeto éconsiderado out of date.

MPLABMPLAB®® SIMSIM3Out of date

• Se algum arquivo do projeto aberto sofreualguma alteração, o nome do arquivo recebe umasterisco e o projeto é considerado out of date.

• A montagem out of date consiste de:

• Verificação de erros

12024/02/2015

ç• Gravação do arquivo .ASM.

• Gravação dos demais arquivos.

• Gravação da program memory.

• As gravações ocorrem somente em montagembem sucedida.

24/02/2015

21

MPLABMPLAB®® SIMSIM3Up to date

• Ao término de uma montagem bem sucedida, oprojeto é considerado up of date.

• Se o arquivo .ASM tem a mesma data dos demaisarquivos, o projeto é considerado up of date.

S h i d j t b t f

12124/02/2015

• Se nenhum arquivo do projeto aberto sofreualteração, o projeto é considerado up of date.

• Quanto o projeto está up of date, o montador nãorealiza as três primeiras tarefas, faz, apenas, aescrita da program memory.

MPLABMPLAB®® SIMSIM3Up to date

• Muito cuidado tem que ser tomado ao lidar com umprojeto up of date.

• Ao executar o programa (Run), o MPLAB® não avisapara montar novamente o projeto up of date.

• A execução diz respeito à program memory e não,

12224/02/2015

necessariamente, ao arquivo .ASM do projeto.

• Se a program memory não corresponde ao arquivo.ASM, a execução não fará sentido para o usuário.

• Esse problema ocorre quando foi montado um projetoe, depois, o arquivo .ASM do projeto foi trocado poroutro, que já foi montado em outra ocasião.

• Como o novo arquivo .ASM é considerado up of date, oMPLAB ® não força uma nova montagem na execução.

MPLABMPLAB®® SIMSIM3Montagem

• Por precaução, convém, sempre que for feita algumaalteração relevante no projeto, montar o projeto antesde executá-lo.

• Não é recomendado executar diretamente o programafi d MPLAB® ifi á

12324/02/2015

confiando que o MPLAB® verificará se a programmemory condiz com o arquivo .ASM em questão.

• A montagem pode ser pulada se o usuário tiverconsciência de que realizou alterações invisíveis aomontador, como, por exemplo, comentários.

MPLABMPLAB®® SIMSIM3Program Memory

12424/02/2015

MPLABMPLAB®® SIMSIM3Program Memory – coluna “disassembly”

• A coluna “disassembly” apresenta o código.asm puro, sem as simplificações permitidasno ambiente de edição.

• O programa pode ser construído pelo usuárioO programa pode ser construído pelo usuáriodiretamente na coluna “disassembly”.

• Se um comando inválido for digitado, o editorfornece uma mensagem de erro.

12524/02/2015

MPLABMPLAB®® SIMSIM3Program Memory – coluna “opcode”

• A coluna “opcode” apresenta o código hexadecimal queé enviado ao chip na gravação.

• O código é formado por 14 bits.• O valor máximo é 3FFFh.

• Como as memórias operam em lógica negativa, umaposição apagada apresenta o valor máximo.

• Um valor acima do máximo é reduzido automaticamente.

• O programa pode ser construído pelo usuáriodiretamente na coluna “opcode”.

• Esta é a forma de programação manual do chip.

• No passado, a programação era realizada desta forma.

12624/02/2015

24/02/2015

22

MPLABMPLAB®® SIMSIM3Opcode e Disassembly

• A relação entre opcode e disassembly é biunívoca.

• Um opcode gera um e apenas um código disassembly.

• Um código disassembly gera um e apenas um opcode.

Desmontagem

Opcode Disassembly

Montagem

Desmontagem

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

MPLABMPLAB®® SIMSIM3Program Memory

Linha 12805h = 10 1000 0000 0101 b

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0

GOTO 10 1kkk kkkk kkkk

k = 000 0000 0101 bk = 5 h

12824/02/2015

MPLABMPLAB®® SIMSIM3Program Memory

A posição indicada por ORG contem o apontador para a posição inicial da flash, 5.

12924/02/2015

MPLABMPLAB®® SIMSIM3Status Register

003h, (banco 0)

083h, (banco 1)

103h, (banco 2)

183h, (banco 3)

Banco 0

Banco 1

13024/02/2015

Banco 1

Banco 2

Banco 3

003h, opcode

MPLABMPLAB®® SIMSIM3Seleção de banco de memória

• Quando um mesmo registrador possui endereçoem mais de um banco da SRAM, seus valoressão sempre os mesmos em todos os bancos.

• Ao endereçar um registrador pelo seu nome, e oregistrador está contido no banco vigente, não é

13124/02/2015

preciso preocupar-se com seu endereçonumérico, pois o endereço de 7 bits é o mesmoem todos os bancos onde o registrador aparece.

• Usando rótulo, também não há preocupaçãocom bancos, desde que o banco selecionadocontenha um dos endereços do registrador.

MPLABMPLAB®® SIMSIM3Seleção de banco de memória

;banco 0BCF STATUS,RP1BCF STATUS,RP0

;banco 1BCF STATUS,RP1BSF STATUS,RP0

13224/02/2015

;banco 2BSF STATUS,RP1BCF STATUS,RP0

;banco 3BSF STATUS,RP1BSF STATUS,RP0

24/02/2015

23

MPLABMPLAB®® SIMSIM3Seleção de banco de memória

000

101

BSF STATUS,RP0

BCF STATUS,RP0

13324/02/2015

210

311

BSF STATUS,RP0

BCF STATUS,RP0

BCF

STATUS,RP1

BSF

STATUS,RP1

BCF

STATUS,RP1

BSF

STATUS,RP1

MPLABMPLAB®® SIMSIM3

1703 BSF 0x3, 0x61683 BSF 0x3, 0x51303 BCF 0x3, 0x6

Seleção de banco de memória

BSF STATUS,RP1BSF STATUS,RP0BCF STATUS,RP1BCF STATUS,RP0

Banco 3

Banco 0

Uso do endereço status register pelo banco 0,

1283 BCF 0x3, 0x5

13424/02/2015

eg s e pe o ba co 0

• Neste exemplo, a PIC® usa o endereço do statusregister do banco 0 mesmo estando no banco 3.

• Isto se deve ao fato de que o endereçamento por 7 bitscoincide com o endereçamento por 9 bits no banxo 0.

• Em outras palavras, o endereçamento por 7 bits é feitocomo se todos os registradores estivessem no banco 0.

MPLABMPLAB®® ICD2ICD24

MPLABMPLAB®® ICD2ICD2

13524/02/2015

MPLABMPLAB®® ICD2ICD2

MPLABMPLAB®® ICD2ICD24Introdução

• ICD2 – In-chip debugger

• Permite a execução do programa dentro dochip com a supervisão do MPLAB®.

13624/02/2015

• 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.

MPLABMPLAB®® ICD2ICD24Visão geral

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

13724/02/2015

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

MPLABMPLAB®® ICD2ICD24Seleção do ICD2 Debugger

Instalação completa

13824/02/2015

Instalação

mínima

24/02/2015

24

MPLABMPLAB®® ICD2ICD24Seleção o ICD 2 Programmer

Instalação

13924/02/2015

completa

Instalação mínima

MPLABMPLAB®® ICD2ICD24Anternância entre debugger e programmer

14024/02/2015

MPLABMPLAB®® ICD2ICD24Configuração ICD 2

14124/02/2015

MPLABMPLAB®® ICD2ICD24Configuração ICD 2

14224/02/2015

MPLABMPLAB®® ICD2ICD24Seleção da porta de comunicação com o PC

14324/02/2015

MPLABMPLAB®® ICD2ICD24Configuração a alimentação do kit

14424/02/2015

24/02/2015

25

MPLABMPLAB®® ICD2ICD24Configurando a alimentação do kit

• Se a placa compatível com ICD2 possui comunicaçãoRS232, a alimentação deve vir por meio de fonte externa.

• Se a placa compatível com ICD2 possui comunicaçãoUSB, a alimentação pode ser externa ou pela USB.

• A vantagem de usar alimentação pela USB é não precisar

14524/02/2015

gadquirir e lidar com uma fonte externa.

• A vantagem de usar a alimentação externa é nãosobrecarregar a capacidade de fornecimento de correnteda USB e garantir que esse fornecimento será mantidodurante uma gravação da PIC®.

• Usar fonte externa e configurar para alimentação pelaUSB pode provocar estragos.

MPLABMPLAB®® ICD2ICD24Conexão

14624/02/2015

MPLABMPLAB®® ICD2ICD24Conexão

• Se a placa compatível com ICD2 está sempreconectada ao computador, então a opção pela conexãoautomática deve ser escolhida; o usuário não precisapreocupar-se em fazer essa conexão manualmente.

• Se a placa compatível com ICD2 é conectada

14724/02/2015

• Se a placa compatível com ICD2 é conectadararamente ao computador, então a opção pela conexãoautomática não deve ser escolhida pois isso gera umatentativa fracassada de conexão toda vez que oMPLAB® é usado no modo ICD2.

MPLABMPLAB®® ICD2ICD24Envio do programa para o kit didático

14824/02/2015

• O manual do kit didático informa paradesabilitar esta opção.

• Se outro equipamento for usado, épreciso ler o manual correspondente.

MPLABMPLAB®® ICD2ICD24Resumo das configurações

14924/02/2015

MPLABMPLAB®® ICD2ICD24Configurando a porta serial

• O manual do kit didático informapara usar esta configuração.

15024/02/2015

24/02/2015

26

MPLABMPLAB®® ICD2ICD24Outras configurações

15124/02/2015

MPLABMPLAB®® ICD2ICD24Outras configurações

15224/02/2015

MPLABMPLAB®® ICD2ICD24Outras configurações

15324/02/2015

MPLABMPLAB®® ICD2ICD24Outras configurações

15424/02/2015

MPLABMPLAB®® ICD2ICD24Program Memory range

• A faixa de posições da program memoryé determinada automaticamente naocasião da montagem do programa.

15524/02/2015

• Sendo uma memória de gravação lenta,esta determinação automática reduz otempo de gravação.

MPLABMPLAB®® ICD2ICD24MPLAB® ICD 2 Toolbar

Comandos desabilitados

Comandos desabilitados

15624/02/2015

24/02/2015

27

MPLABMPLAB®® ICD2ICD24Conexão

15724/02/2015

MPLABMPLAB®® ICD2ICD24Conexão – falha 1

15824/02/2015

Possíveis explicações:

• Kit desligado.

• Kit desconectado.

• Defeito de natureza elétrica.

MPLABMPLAB®® ICD2ICD24Conexão – falha 2

15924/02/2015

• Erro na configuração do CH7.

• Colocar as quatro chaves para baixo.

MPLABMPLAB®® ICD2ICD24Conexão – sucesso

Comandos habilitados

16024/02/2015

ChipMPLAB®

Código em branco

MPLABMPLAB®® ICD2ICD24Comandos

Verifica se está apagado

16124/02/2015

Apaga o chip

MPLABMPLAB®® ICD2ICD24Apagando 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:• Flash: 3FFFh

16224/02/2015

• EEPROM: FFh

• Na verificação, ao encontrar o primeiro erro, o verificadorindica a localização do erro, o valor esperado, e o valorencontrado.

24/02/2015

28

MPLABMPLAB®® ICD2ICD24Comandos

Verifica a memória

16324/02/2015

Lê o chip

Lê a EEPROM

MPLABMPLAB®® ICD2ICD24Verificando a memória

• Após a gravação da memória, convém realizar umaverificação, para confirmar se o código foi gravadocorretamente.

• Ao encontrar o primeiro erro, o verificador indica a

16424/02/2015

localização do erro, o valor esperado, e o valor encontrado.

MPLABMPLAB®® ICD2ICD24Comandos

Grava o chip

16524/02/2015

Grava o chip

MPLABMPLAB®® ICD2ICD24Gravação

• Somente a flash é gravada.

• A EEPROM não é gravada.

16624/02/2015

g

• A EEPROM pode ser lida no ICD2.

• A EEPROM é feita para ser escritasomente durante a execução do programa.

MPLABMPLAB®® ICD2ICD24Comandos do ICD2 programmer

16724/02/2015

MPLABMPLAB®® ICD2ICD24Comandos do ICD2 debugger

16824/02/2015

24/02/2015

29

MPLABMPLAB®® ICD2ICD24

Após

• Apagar o chip e

• Ler o chip,

Limpeza e verificação

16924/02/2015

a program memory é:

Também é bom verificar se ochip está mesmo em branco.

MPLABMPLAB®® ICD2ICD24Montagem

17024/02/2015

• Antes da gravação, é preciso executar o comando make.

• Este programa preenche o campo program memory doMPLAB® com o código montado.

• Sempre que o MPLAB® considerar que o códigoassembler não corresponde ao código montado,localizado na program memory do MPLAB®, haverásolicitação para que se execute a montagem.

MPLABMPLAB®® ICD2ICD24

• Na verificação, antes de lero chip, é recomendadofazer um fill memory.

• Isto garante que ainformação e ibida eio do

Gravação e verificação

17124/02/2015

informação exibida veio dochip e não do MPLAB®.

• Também é bom verificar seo chip não está em branco.

MPLABMPLAB®® ICD2ICD24

Após:

• Gravar o chip.

• Ler o chip.

Gravação e verificação

17224/02/2015

A program memory é:

Este programa veio do chip.

MPLABMPLAB®® ICD2ICD24Reiniciando a execução

17324/02/2015

MPLABMPLAB®® ICD2ICD24Gravando o chip – comando program

17424/02/2015

24/02/2015

30

MPLABMPLAB®® ICD2ICD24Executanto passo a passo (step into)

RESET

17524/02/2015

MPLABMPLAB®® ICD2ICD24Supervisionando a execução passo a passo

17624/02/2015

MPLABMPLAB®® ICD2ICD24Adicionando os registradores usados

17724/02/2015

MPLABMPLAB®® ICD2ICD24Verificando alteração nos registros

17824/02/2015

MPLABMPLAB®® ICD2ICD24Mensagens de erro

• Houve tentativa de rodar o programa (comando “RUN”) sendoque o MPLAB® suspeita que houve alguma alteração noprojeto após a última montagem.

• Se o usuário tem certeza de esta alteração não interferirá nocódigo montado, pode pressionar o botão “NO”.

S ã h t t é l i “YES” i t

17924/02/2015

• Se não houver esta certeza, convém selecionar “YES”, istorealizará uma nova montagem (comando “MAKE”).

MPLABMPLAB®® ICD2ICD24Mensagens de erro

• Houve tentativa de rodar o programa (comando “RUN”) sendoque o MPLAB® suspeita que a program memory do MPLAB®

seja diferente da program memory do chip.

• Se o usuário tem certeza de que não há alterações, podepressionar o botão “OK”.

S ã h t t é l ã d

18024/02/2015

• Se não houver esta certeza, convém cancelar a execução doprograma e fazer uma compilação (comando “MAKE”).

24/02/2015

31

MPLABMPLAB®® ICD2ICD24Mensagens de erro

• Houve uma tentativa de executar um código montado emum outro ambiente, como, por exemplo, o MPLAB® SIM.

• Eventualmente, diferenças poderão existir.

• Por segurança, compensa montar novamente o programa.

18124/02/2015

MPLABMPLAB®® ICD2ICD24Etapas do projeto

MontagemMakeBuild

GravaçãoProgram Execução

Run

ICD2

18224/02/2015

Criação do código “.asm”

Geração do código montado

Gravação do chip

Execução do código no chip

Execução do código no MPLAB®

ExecuçãoRun

MPLAB® SIM

MPLABMPLAB®® ICD2ICD24Gravação manual

• É possível programar e gravar o chip sem o uso dalinguagem MPASM™ ou de assembler puro.

• Também é possível gravar o chip sem a necessidade deexecutar o programa pelo ICD 2.

• Não é necessário criar um projeto “MCW”.

18324/02/2015

• O programa é digitado diretamente na Program Memorydo MPLAB®.

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

• Se houver algum projeto aberto, deve-se fechá-lo, paraque outros arquivos não sejam incluídos (menu“project””, opção “close”).

• Não há verificação de erros.

MPLABMPLAB®® ICD2ICD24Gravação manual

Programação pelo opcode

18424/02/2015

Programação pelo disassembly

Não há MCW nem MCP.

MPLABMPLAB®® ICD2ICD24Gravação manual

• Antigamente, os primeiros programas de gravação deMCU’s permitiam, apenas, a gravação manual.

• O arquivo com o programa era feito com um editor de textos.

• O nome do arquivo texto era usado como argumento.

18524/02/2015

• O programa gravador era chamado na linha de comando.• Exemplo: C:\micro\gravador.exe /luzinhas.txt

• “gravador.exe” é o programa gravador do chip.

• “luzinhas.txt” é o programa a ser gravado no chip.

MPLABMPLAB®® ICD2ICD24Gravação manual

• As primeiras versões usavam, apenas, os opcodes.

• Os usuários deveriam ser capazes de obter, manualmente, osopcodes para cada instrução juntamente com os operandos.

• Versões posteriores aceitavam arquivos com códigoassembler e faziam a conversão para os opcodes

18624/02/2015

assembler e faziam a conversão para os opcodes.

• Mais tarde, vieram versões que faziam uma limitada buscapor erros.

• Por fim, vieram programas que permitiam ao usuário executaro programa no computador ou no chip, na busca por erros.