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

Bem vindo ao Blog ELETRODEX

A ELETRODEX ELETRÔNICA sempre preocupado em atender a todas as necessidades de seus clientes, traz para você hobista ou profissional da eletrônica um espaço virtual aberto para discussões e ideias, para que possamos dia a dia melhorar cada vez mais a nossa loja virtual ,sempre focando em satisfazer nossos clientes com as melhores ofertas do mercado e as dicas mais úteis para seu projeto.

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