Sei sulla pagina 1di 13

Organizao da Memria de

Programa: Famlia PIC 18F

Universidade Federal do Rio Grande do Norte

Tpicos Especiais em Sistemas Digitais


Eli Edson Cabral de Lima Jnior
Organizao da Memria de
Programa
Organizao da Memria de
Programa
Caractersticas:
Tipo Flash.
Contador de programa e memria pilha relacionados.
A arquitetura do PIC18 traz um PC (Program Counter
Contador de programa) de 21 bits at 2 Mbytes de
endereos de memria de programa.
Cada componente da famlia tem diferentes quantidades de
memria implementadas (8 Kbytes 128 Kbytes).
Organizao da Memria de
Programa
Caractersticas:
A memria de programa mapeada de forma que cada endereo tenha 8 bits (1
byte):
Isso feito de forma a facilitar o uso da memria de programa para armazenamento de
constantes (de forma a facilitar a transferncia para o barramento de dados) e o uso de
reas da flash no ocupadas por programa.
Contudo, as instrues armazenadas na memria de programa tm 16 ou 32 bits:
O que acontece na verdade que cada instruo ocupa dois endereos de memria e o
PC, quando executando um programa, incrementa de 2 em 2 e o barramento de instruo
permite a leitura simultnea de dois endereos de memria, formando uma instruo de 16
bits (instrues curtas). Em virtude disso o endereo das instrues sempre um nmero
par. Para a leitura das instrues longas (32 bits) so feitos dois acessos de leitura.
Organizao da Memria de
Programa
Caractersticas:
Para o uso da memria de programa para o armazenamento
de dados existem instrues especiais que realizam as
chamadas operaes de tabela. O ponteiro utilizado nessas
instrues o TBLPTR que tem 22 bits. Atravs dele possvel
realizar a leitura e escrita de qualquer endereo da memria de
programa.
Table Read (TBLRD)
Table Write (TBLWT)
Organizao da Memria de
Programa
Organizao da Memria de
Programa
Caractersticas:
Uma importante novidade no PIC18
a inexistncia de paginao de
memria que existia na famlia
PIC16.
O vetor de reset para o PIC18F
continua sendo o endereo 0000h,
como era no PIC16.
Existem dois vetores de interrupo.
O vetor de maior prioridade o
0008h o de menor o 0018h.
Organizao da Memria de
Programa
Organizao da Memria de
Programa
Contador de Programa:
O PC do PIC18 tem 21 bits.
Ele dividido em trs registros de 8 bits: PCL, PCH e
PCU.
Pode ser manipulado a partir da memria de dados
atravs de PCLATU, PCLATH e diretamente atravs de
PCL.
De forma similar ao que acontece no PIC16, toda vez que
uma operao de escrita realizada em PCL os valores
de PCLATH e PCLATU so carregados em PCH e PCU,
respectivamente,causando um desvio imediato.
A novidade que uma leitura do registro PCL faz com
que os valores de PCH e PCU sejam transmitidos para o
PCLATH e PCLATU, respectivamente.
O bit 0 do PCL sempre 0 instrues comeam em
endereos pares.
Organizao da Memria de
Programa
Pilha (Stack):
A pilha do PIC18 um espao de memria de 31
posies de 21 bits.
Trata se de uma pilha circular, ou seja, o 32
endereo gravado sobrescreve o primeiro,
caracterizando um overflow da pilha.
Se instrues de retorno forem dadas quando o
primeiro nvel da pilha estiver livre considera-se um
underflow da pilha.
O ponteiro da pilha (Stack Pointer) acessvel atravs
do registro STKPTR, o que no acontece na arquitetura
PIC16.
Nesse registro h tambm bits que sinaliza o estado da
pilha. O ponteiro da pilha contm o endereo do topo
da pilha, que recebe o ltimo endereo de retorno
guardado.
Organizao da Memria de
Programa
Pilha (Stack):
O valor contido no endereo apontado pelo
ponteiro, portanto o ltimo endereo salvo na
pilha, chamado de topo da pilha (TOS Top of
Stack).
No PIC18 o contedo desse endereo
acessvel atravs dos registros de funo
especial TOSU, TOSH e TOSL. possvel
ento ler o contedo do topo da pilha e alter-lo.
Alm disso, existem as instrues PUSH e POP.
PUSH incrementa o valor o ponteiro da pilha
e carrega o endereo seguinte no TOS.
POP decrementa o ponteiro, descartando
endereo contido no TOS.
Organizao da Memria de
Programa
Pilha de Registro Rpido (Fast Register Stack):
Se trata de uma pilha de um s nvel onde so guardados os
valores do registro de estado, W, e o registro BSR, quando so
produzidas interrupes. Os valores podem ser recuperados se ao
sair da interrupo se utilizar as instrues RETFIE, FAST.
Se estiverem habilitas as interrupes de baixa e alta prioridade,
no se deve utilizar esta pilha em interrupes de baixa prioridade.
Se no h interrupes habilitadas esta pilha pode ser utilizada ao
se chamar subrotinas (CALL <eti>, FAST y RETURN, FAST ).
Referncias
http://pt.slideshare.net/danielhenrique92505/245521697-
123529254cursomicrocontroladorpic18f
http://www.joseapicon.com.ve/descargas/pic/Manual%20
PIC%2018F4550.pdf
Data Sheet PIC 18F2455/2550/4455/4550: Acesso em:
<www.microchip.com>

Potrebbero piacerti anche