1 / 12

Desenvolvendo o Sistema Parte 1

Desenvolvendo o Sistema Parte 1. Ivan Saraiva Silva Sistemas de Tempo Real Embutidos. Programação Assembler. Diretivas. Pseudo-instruções do assembler Instruções para o assembler não para a CPU BASE: Seleciona base de operação numérica BASE 10 DC: Define constantes na memória

tauret
Download Presentation

Desenvolvendo o Sistema Parte 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desenvolvendo o SistemaParte 1 Ivan Saraiva Silva Sistemas de Tempo Real Embutidos

  2. Programação Assembler

  3. Diretivas • Pseudo-instruções do assembler • Instruções para o assembler não para a CPU • BASE: Seleciona base de operação numérica • BASE 10 • DC: Define constantes na memória • [<label>:] DC [.<tamanho>] <expressão> [,<expressão>] • <tamanho> = B, W, L • Disciplina: DC.B “Sistemas Embutidos”

  4. Diretivas • DCB: Aloca bloco de tamanho <tamanho>*<quantidade>, iniciado com <valor> • [<label>:] DCB [.<tamanho>] <quantidade>, <valor> • <tamanho> = B, W, L • DCB.W 3 $FFFE • (três palavras iniciadas com $FFFE)

  5. Diretivas • DS: Reserva memória não iniciada • [<label>:] DS [.<tamanho>] <quantidade> • Contador DS.B 2 • Dois bytes para Contador • Sinônimos • RMB = DS.B • RMD = 2DS.B = DS.W • RMQ = 4DS.B = 2DS.W = DS.L • END: Fim do código fonte

  6. Diretivas • EQU: Aloca valor permanente a um símbolo • <label>: EQU <expressão> • RAM: EQU $0040 • PORTA: EQU $0000 • PORTB: EQU $0001 • INCLUDE: Insere arquivo • INCLUDE “nome do arquivo” • INCLUDE “M68HC908QT/QY.INC” • Definições do micro-controlador

  7. Diretivas • ORG: Marca origem de seção • ORG <expressão> • ORG $F800 • Endereço inicial da FLASH no M68HC908QT1 • SECTION: Define seção realocável e inicia contador para o código • SECTION [SHORT] [<número>] • SECTIONDS.W 6 • 6 palavras (12 bytes)

  8. Código Objeto • Formato S19 • Cada linha é um registro e contem: • Tipo: S0 (cabeçalho), S1 (dados), S9 (fim de arquivo) • Comprimento: dois caracteres ASCII indicando o número de bytes restantes no registro • Endereço: 4 caracteres ASCII com o endereço para armazenamento dos dados do registro

  9. Código Objeto • Dados: Pares de caracteres com códigos de máquina • Checksum: dois caracteres ASCII representando a soma em complemento de um de todos os bytes do registro (exceto tipo e checksum)

  10. Código Objeto - Exemplo S0200000433A5C50726F6A65746F73 ... BE S123F800450100948C9A5FA600B71E...E7 S11EF820F82F4A26FA1300B600A404...8C S105FFFEF80005 S9030000FC

  11. Inicio: LDA #00001000B STA CONFIG2 LDA #00011001B STA CONFIG1 LDA #$FF STA PORTA LDA #$02 STA DDRA BSET 1,PORTA volta: LDA PORTA AND #$04 BNE VOLTA BCLR 1,PORTA JSR Dly_1s BSET 1,PORTA fica: LDA PORTA AND #$04 BEQ FICA BRA VOLTA Aplicação LED “Piscante”

  12. Dly_1s: LDA #20 Loop0: LDHX #t50ms Loop1 AIX #-1 CPHX #0 BNE Loop1 DECA BNE Loop0 RTS Sub-rotina Dly-1s 2 3 2 t50ms 3 x20 3 1 3 4

More Related