por fabim » 07 Dez 2009 12:58
Juliana.
Qual IDE esta utilizando?
Qual linguagem ?
Lembre-se.. "você leu acerca do bootloader, para saber qual o tamanho e se ele se encontra no inicio ou fim da flash?".
#ORG ....
Isto não quer dizer nadinha de nada, a não ser alocar algo em algum lugar.
É necessario saber o que, e como quer fazer.
Lembre-se no momento em que o pic é energisado e starta a CPU, ele cai logo no endereço 0X0000;<< vetor de reset.
Com certeza, neste endereço tem um CALL/GOTO>>
"Endereço inicial da rotina de bootloader, o qual fica preso por alguns segundos ou Ms, até receber um comando do PC, SERIAL que informa que vai inicializar o Bootloader, o qual esta rotina é responsavel a gravar na flash do pic o programa o qual esta fazendo o upgrade"
Depois que termina o Boot, o que a rotina de bootloader faz ?
Ela da um goto para o ofset ENDEREÇO X, o qual você deve estar ciente qual é, você deve conhecer este endereço !!!
Suponha que o programa de boot foi feito da seguinte forma.
No vetor de reset, foi feito assim.
:0x0000: call_boot_loader;
:0x0001:goto main.
Veja, logo no reset ele da um call, lá para o endereço X que é o programa de bootloader, o qual funciona conforme expliquei à cima.
Terminado o bootloader, ou apenas estourado o tempo que ele espera para o boot, no fim deste pequeno programa tem um.
RETURN:
Veja, ele vai retornar para o vetor
0X0001: que vai saltar para o endereço do programa que você fez em sua IDE!!!
Este endereço ou labeal "main", pode ser configurado como comando de IDE, e informado que ele fica no endereço X.
Ou seja,
Quando você faz o programa e cria o .
void main(void).
O assemblador substitui o nome main, pelo endereço " X"<<....
Agora na pratica, como exemplo o mikroC.
Sei que o bootloader que eu estou utilizando, me informou que ele grava tudo como base de reset no endereço.
0X0010 pra frente.
Dessa forma, eu tenho que informar A ide que ela vai montar o programa hex, tomando o ofset 0x0010.
logo no source de meu programa, no mikroC lá encima eu vou dar uma diretiva, para a IDE montar o programa do endereço 0X0010 pra frente.
#pragma orgall 0x0010...
Pronto, resolvido.
Entendeu agora?
Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!