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>