Br-Gogo: Construindo Firmware – II

Antes de tudo, precisamos saber como é o funcionamento do PIC sem o bootloader. Ao alimenta-lo, há um desvio para o endereço de memória 0h, a partir deste endereço, inicia nosso programa, caso o tenhamos gravado.

Quando adotamos um bootloader, aproveitamos este desvio inicial, porém, transferindo para outro endereço, geralmente, mas próximo do fim e neste espaço, gravaremos uma rotina que carregará o firmware, alocado em outra posição de memória, ou a rotina de atualização deste firmware.

Na família 18F de PIC´s, o endereço 0h é chamado de reset, ou melhor, sempre que o PIC é resetado, alimentado, é aqui que ele se encaminha. Ainda existem dois endereços importantes, o de interrupção de baixa prioridade, bem como o de interrupção de alta prioridade, alocados em 18h e 8h, respectivamente. Estes serão os endereços apontados quando eventos de interrupção ocorrerem.

Dentro do bootloader, estes endereços devem ser realocados, para que ambos, bootloader e firmware, possam coexistir e este último não apagar o primeiro. A Microchip, recomenda a alocação da seguinte forma:

– area do bootloader = 0h à 7FFh
– area do reset = de 0h para 800h
– area de interrupções = de 8h/18h para 808h/818h

Anúncios