Pular para o conteúdo principal

Entendendo o bootloader

Uma das muitas funcionalidades incorporadas ao microcontroladores avançados da Microchip é a capacidade do programa se auto-programar. Este recurso muito útil, foi deliberadamente incluído para dar ao usuário a capacidade de realizar operações de "Bootloading". Dispositivos como o PIC18F4550 são projetados com um 'bloco de boot', uma pequena parte da memória de programa protegida, alocados especificamente para o firmware bootloade.

O bootloader tem a função de se comunicar com o PC através da USB,  receber o programa  e direciona-lo para a área reservada para o "programa de usuário". Veja abaixo a demonstração da distribuição de memória de um microcontrolador sem bootloader e um microcontrolador com bootloader. .

Bootloader PIC18

Obs: No exemplo ilustrado acima a área de "User program" se inicia no endereço 1000H, contudo este endereço inicial pode variar de acordo com a versão do bootloader utilizado.

Como observado na ilustração acima , o programa de usuário sempre ira iniciar em uma posição deslocada do ponto 0 de memória, visto que o bootloader estará ocupando esta área inicial da memória, e isso é muito importante para desenvolver o seu programa, pois todo programa que será desenvolvido, com destino a ser carregado em um dispositivo que faz uso de bootloader para auto-programação, tem que possuir em seu código uma diretiva de programação que diz ao compilador que todo o código de execução será colocado em uma posição de memória a partir de um endereço X. No caso do exemplo acima o programa deverá ter uma diretiva que coloque o código a partir da posição 1000H, um exemplo desta diretiva no programador mikroC é o "#pragma orgall" como no exemplo abaixo:


Obs: Para cada compilador utilizado é importante  pesquisar para saber qual a diretiva correta a se utilizar.

Abaixo temos um exemplo do arquivo HEX gerado com a utilização da diretiva acima.



Dica: Um bom exemplo para utilização deste conhecimento é na programação da placa PROTO'n PIC18F4550.

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Controlando LED via Bluetooth utilizando o Módulo HC-05

Hoje abordaremos uma breve demonstração de conexão do Módulo Bluetooth HC-05 Master/Slave com um dispositivo externo, e após a conexão utilizar o dispositivo para controlar um LED. A Placa Base utilizada como controladora é a Arduino Uno , que foi utilizada em conjunto com o Protoshield compatível com a mesma. Todos os itens utilizados podem ser adquiridos em nossa loja . Note que o Módulo Bluetooth HC-05 Master/Slave possui níveis de tensão de alimentação e operação diferentes, sendo que pode ser alimentado com  uma tensão entre 3,3v e 6v (no projeto foi alimentado com 5v, direto de um dos pinos do Arduino Uno ), mas a sua tensão de operação é de 3,3v. IMPORTANTE:    O Arduino consegue reconhecer a tensão de 3,3v no terminal RX como nível lógico alto, mas somente fornece 5v no terminal Tx como nível lógico alto. Portanto, se for utilizar os terminais Rx e Tx para a comunicação com os terminais Tx e Rx do HC-05,  o terminal Tx do HC-05 pode ser conectado diretamente ao ter

Como programar com Programador KIT 3.5 para PIC

Nesta postagem iremos falar sobre o Programador KIT 3.5 O Programador KIT 3.5 é um programador para microcontroladores PIC bastante completo, até o momento compatível com  mais de 600 dispositivos da linha de microcontroladores da Microchip, incluindo a nova linha dsPIC. (Confira aqu i a lista com os microcontroladores compatíveis com o Kit 3.5) Permite a programação diretamente na placa (ICSP) ou então através de conectores ZIF (não inclusos). Detalhe para a interface ICSP Com ele é possível gravar (programar), ler, verificar e copiar os códigos dos microcontroladores, através do software gratuito PicKit 3 Programmer ( instruções de uso ), uma vez que ele é totalmente compatível com o PICkit3. Lembrando que este software é apenas para a gravação do arquivo HEX no seu microcontrolador, sendo que é necessário gerar esse arquivo em um compilador de sua escolha. Além disso, é possível utilizá-lo como ferramenta de depuração (debug) através do software MPLAB. Caract

Utilizando o Programador USB para PIC K150

Nessa postagem iremos demonstrar a utilização do Programador USB para PIC K150 O gravador possui um soquete do tipo ZIF (ZIF - Zero Insertion Force - é um soquete com uma alavanca, que permite a colocação e a retirada dos microcontroladores sem risco de danificar seus terminais) para a programação dos microcontroladores. Conta também com um conector para a programação ICSP (In Circuit Serial Programming, que será abordada futuramente em outra postagem, pois é necessário que se faça algumas adaptações no circuito a ser programado). O programador é controlado pelo PIC16F628A, e no site do fabricante do gravador é possível encontrar informações sobre como atualizar o firmware do gravador, para possibilitar a gravação de mais dispositivos. Instalação do Programador USB para PIC K150 Se você estiver utilizando o Windows 7/Vista/XP, o driver deve ser instalado normalmente, sem que seja necessária a interferência do usuário. Caso esteja utilizando o Windows 8/8.1, o processo é um po