Está en la página 1de 18

Curso Técnico de Eletrônica

Laboratório de Microprocessadores

Enderson Neves Cruz


enderson@deii.cefetmg.br
enderson.bh@gmail.com
Agenda

• Apresentação
• Avaliação
• Kit de desenvolvimento e Emuladores
• Modos de endereçamento
• Aula prática 01
• Aula prática 02
• Dúvidas

2
Avaliação

• Trabalho = 50% (Grupo)


– Tema deve ser previamente discutido com o professor
– Deve ser apresentado na aula anterior a prova

• Prova = 50%
– Um trabalho extra individual pode ser entregue no dia da prova.
Se estiver funcionando corretamente substituirá 50% do valor da
prova.
– O tema do trabalho deverá ser discutido com o professor até a
aula anterior a prova

3
Kits de desenvolvimento e Emuladores
• Programador (Gravador) - Programmer
• Kit de Desenvolvimento - Experimenter Boards
• Emuladores

Programador (gravador)
Microprocessadores PIC

Kit de Desenvolvimento
Programador (gravador)
Microprocessadores MSP430
Microprocessadores MSP430

http://focus.ti.com/mcu/docs/mcuprodtoolsw.tsp?sectionId=95&tabId=1203&familyId=342&toolTypeId=1#FETkits
Kits de desenvolvimento e Emuladores
Emulação via JTAG

• JTAG ( Joint Test Access Group ) é uma interface de programação e teste de circuitos digitais, padronizada como
IEEE 1.149,1.

• Originalmente desenvolvido para a programadores lógicos, também é freqüentemente utilizado para


microcontroladores.

• O dispositivo é acessado através de quatro linhas seriais (TMS, TCK, TDI, TDO) através dos quais as portas,
memória, registradores, etc., podem ser lidos e escritos em alta velocidade:
1. TDI (Test Data In) – Entrada de dados

2. TDO (Test Data Out) – Saída de dados

3. TCK (Test Clock) - Clock

4. TMS (Test Mode Select) – Seletor de modo

5. TRST (Test Reset) optional.

• JTAG padroniza os dispositivo programação. Alguns programadores de dispositivos, podem programar


dispositivos JTAG compatíveis, mesmo quando ainda não entraram na lista do dispositivo.

• Além da programação, a interface JTAG também permite testar e depurar seus microcontroladores e as portas
I/O. Com um depurador JTAG pode desenvolver software diretamente na placa eletrônica original. O depurador
desencadeia interrupção de hardware e software, interrompe o programa e executá-lo em único passo, sem
necessidade de emulador e sem hardware adicional.
Kits de desenvolvimento e Emuladores
Emulação via JTAG
Kits de desenvolvimento e Emuladores
Desenvolvimento de programas

Interpretação

Edição Compilação Depuração


Edit Compile Debug
Construção
Build

• Edição consiste na digitação, de todos os mnemônicos pertencentes ao programa, utilizando um editor de texto tipo ASCII. Neste
estágio o programa está em linguagem assembly e é conhecido como código fonte.
• Montagem é a tradução do texto digitado (mnemônicos) para o respectivo código de máquina (binário) da CPU. Caso seja obtido
sucesso nesta etapa será gerado o código objeto.
– Compilação - significa traduzir o código de fonte de uma linguagem de programação de alto nível para uma linguagem de programação de
baixo nível (por exemplo, linguagem de montagem assembly ou código de máquina).
– Interpretadores - programas de computador que leem um código fonte de uma linguagem de programação interpretada e o converte em
código executável.
• Linkedição (Linker) - insere informações relativas ao sistema operacional, que está sendo utilizado, ao código fonte. Entretanto o papel
mais relevante da linkedição é a ligação de vários códigos objetos.
• Depuração (em inglês: debugging, debug) é o processo de encontrar e reduzir defeitos num aplicativo de software ou mesmo em
hardware. Erros de software incluem aqueles que previnem o programa de ser executado e aqueles que produzem um resultado
inesperado.
Kits de desenvolvimento e Emuladores
Emulador IAR Embedded Workbench
• IAR empresa Sueca que desenvolveu o software (IAR Systems).

• IAR Systems foi fundada em 1983 e desenvolve principalmente emuladores, compiladores para auxiliar no
desenvolvimento de sistemas microprocessados e microcontroladores.
Kits de desenvolvimento e Emuladores
Emulador IAR Embedded Workbench

Área de edição Situação dos


Botões de controle
registradores
de execução

Workspace
Área de trabalho

Situação da memória
Log
Messagens de erro e
acompanhamento
Kits de desenvolvimento e Emuladores
Emulador IAR Embedded Workbench
Agenda

• Modos de endereçamento
• Contador de programa – PC
• Ponteiro (Apontador de pilha) - SP
• Aula prática 02
• Aula prática 03
• Aula prática 04
• Dúvidas

11
Modos de Endereçamento MSP430

Modos de endereçamento Sintaxe Descrição Endereço Operando

Modo registrador Rn O conteúdo do registrador é o operando Registrador Conteúdo do Registrador

Rn + X aponta para o operando.


Modo indexado X(Rn) Conteúdo do Registrador + X Memória
X é armazenado na próxima word.

PC + X aponta para o operando.


Modo simbólico ADDR Contador de programa (PC) + X Memória
X é armazenado na próxima word.

A palavra após a instrução contém o endereço


Modo absoluto &ADDR Fornecido diretamente na instrução Memória
absoluto

Modo registro indireto @Rn Rn é usado para apontar para o operando. Conteúdo do Registrador Memória

Modo indireto com Rn é usado para apontar para o operando.


@Rn+ Conteúdo do Registrador Memória
autoincremento Rn é incrementado após o uso da instrução.

A palavra após a instrução contém a constante


Modo imediato #N Fornecido diretamente na instrução
imediata N.
Contador de Programa - PC
Contador de Programa ( Program Counter – PC )

• O Contador de programa (PC/R0) aponta para a próxima instrução a ser executada.


• Cada instrução usa um número par de bytes ( 2, 4 ou 6), desta forma o contador de programa será incrementado
de acordo com o número de bytes da instrução
• O acesso das instruções no espaço de endereçamento de 64KB, é realizado em Words, o PC é alinhado para os
endereços pares, para tanto o bit 0 é sempre mantido em nível lógico 0.

Contador de programa - PC

• O PC pode ser lido ou escrito diretamente pelo software em execução, permitindo o uso de técnicas, como por
exemplo: Desvio Calculado.

Exemplos:

MOV #USJT ,PC ;Desvio para o endereço USJT


MOV R7 ,PC ;Desvio para o endereço contido em R7
MOV @R14 ,PC ;Desvio indireto para o endereço apontado por R14
Apontador de Pilha - SP
Apontador de Pilha ( Stack Pointer – SP )

• O apontador da pilha (SP/R1) é utilizado pela CPU para armazenar os endereços de retorno de sub-rotinas e
interrupções.
• Utiliza modo de prédecremento (decrementa e depois desempilha) e pós-incremento (incrementa e depois
empilha) .
• A cada operação de empilhamento (armazenar dado na pilha) o SP é decrementado de 2, e a cada operação de
desempilhamento (leitura de dado na pilha) o SP é incrementado de 2.
• O SP pode se utilizado por software em todos os modos de endereçamento e com todas as instruções.
• O SP é inicializado em memória RAM pelo usuário, sendo alinhado por endereços pares, para tanto o bit 0 é
sempre mantido em nível lógico 0.
• Após o reset o SP fica em valor indeterminado, devendo ser inicializado pelo usuário antes de utilizar a pilha.

Apontador de Pilha - SP

Exemplo:
Temos um caso especial da utilização do SP como argumento para as
instruções PUSH e POP
MOV 2(SP) ,R6 ;Carrega I2 em R6 PUSH → Armazenamento na pilha
MOV R7 ,0 (SP) ;Escreve R7 em TOS POP → Leitura de um valor da pilha
PUSH #0123h ;Coloca 0123h em TOS
POP R8 ;R8 = 0123h
Registrador de Status – SR
Registrador de Status ( Status Register – SR )

• Status Register (SR/R2): Registrador especial de 16 bits que contem os FLAGS de condições lógicas e aritméticas
alem dos bit’s de controle de Low Power Mode (LPM) e bit de habilitação global das Interrupções Mascaráveis.

Registrador de Status ( Status Register – SR )


Bit Descrição

8 V Flag de estouto (Overflow). Será setado se o resultado de uma operação aritméticatransbordar (overflow). O bit é válido para operação de byte ou de word.

7 SCG1 Gerador de clock do sistema. Controla o sinal SMCLK.

6 SCG0 Gerador DC do DCO (Oscilador Controlado Digitalmente) do sistema. Controla o sinal DCOCLK.

Flag de desligamento do cristal oscilador do sistema de clock. Se este bit estiver setado, o oscilador a cristal entra em estado desligado. Todas as
5 OSCOFF atividades dependentes deste sinal de clock cessam, contudo o conteúdo de RAM, portos e registros são mantidos. Caso a CPU dependa deste clock
somente voltará a funcionar se ocorrer uma interrupção externa, quando o bit GIE estiver habilitado ou um sinal NMI ou reset.

Flag de desligamento do clock da CPU. Se este bit estiver setado a CPU entra em modo desligado. A execução de programas
4 CPUOFF
pára, contudo, RAM, registros e portas são preservados. Somente sairá deste estado através de interrupção ou reset.

Flag habilitador geral de interrupção (General Interrupt Enable). Se setado habilita todas as interrupções mascaráveis. Se resetado desabilita todas as
3 GIE interrupções mascaráveis. O bit GIE é resetado automaticamente pela interrupção e setado automaticamente pela instrução RETI ou por outra instrução
apropriada.

Flag Negativo. Será setado se o resultado de uma operação for negativo. Em operações de word o bit N = bit 15 do resultado.
2 N
Em operações de byte o bit N = bit 7 do resultado.

1 Z Flag Zero.Será setado se o resultado de uma operação de byte ou word for zero. Caso contrário será resetado.

Flag de transporte (carry). Será setado se uma operação produzir um carry (vai um) e zerado se não houver carry.
0 C
Em algumas instruções o bit de carry indica resultado diferente de zero (bit de zero invertido).

Os bits de status V, N, Z e C são modificados somente com instruções específicas, consulte o conjunto de instruções.
Conjunto de instruções

Instruções de movimentação e manipulação de dados Instruções Aritméticas e Lógicas


Instrução Descrição Instrução Descrição
1 MOV Copia dados da fonte para o destino 8 ADD Adição
2 CLR Apaga o conteúdo do destino 9 ADDC Adição com transporte
3 SWP Troca os bytes do destino 10 ADC Adição do transporte
4 PUSH Amazena um dado na pilha 11 DADD Adição decimal
5 POP Restaura um dado da pilha 12 DADC Adição decimal com transporte
6 BIC Apaga um ou mais bits do destino 13 SUB Subtração
7 BIS Seta um ou mais bits do destino 14 SUBC Subtração com empréstimo
15 SBC Subtração o bit de empréstimo
16 INC Incremento
17 INCD Incremento em dois
18 DEC Decremento
19 DECD Decremento de dois
20 RLA Rotação aritmética à esquerda (multiplicação por 2)
21 RRA Rotação aritmética à direita (divisão por 2)
22 SXT Extensão do sinal
23 AND Operação lógica E
24 XOR Operação lógica Ou Exclusivo
25 INV Inverte os bits (Operação lógica NOT)
26 RLC Rotação à esquerda por meiodo transporte
27 RRC Rotação à direita por meiodo transporte
Conjunto de instruções

Instruções de teste e desvio Instruções de controle da CPU


Instrução Descrição Instrução Descrição
28 BIT Teste de bits 43 CLRC Apaga bit C
29 CMP Comparação 44 CLRN Apaga bit N
30 TST Testa se igual a zero 45 CLRZ Apaga bit Z
31 BR Desvio absoluto incondicional 46 SETC Seta bit C
32 JMP Slato absoluto incondicional 47 SETN Seta bit N
33 JEQ/JZ Desvia se igual a zero 48 SETZ Seta bit Z
34 JNE/JNZ Desvia se diferente de zero 49 DINT Desabilita interrupções
35 JC/JHS Desvia se C = 1 ou se maior ou igual 50 EINT Habilita interrupções
36 JNC/JLO Desvia se C = 0 ou se menor 51 NOP Nenhuma operação
37 JGE Desvia se maior/igual
38 JL Desvia se menor
39 JN Desvia se negativo
40 CALL Chamada de sub-rotina
41 RET Retorno de sub-rotina
42 RETI Retorno de interrupção
Conjunto de instruções
Leis de De Morgan

También podría gustarte