Boot a partir do cartão de memória

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Boot a partir do cartão de memória

Mensagempor dreher » 22 Set 2009 17:42

Boa tarde a todos

Estou numa duvida cruel. Preciso atualizar o firmware do meu microcontrolador a partir de um cartão de memoria.

Explico: Tenho no meu projeto um cartão MMC formatado com FAT16, e neste cartão está gravado o meu firmware.

Esse equipamento está conectado a uma rede 485 com um protocolo próprio. Eu recebo o firmware atraves desta rede em pacotes de 1kb.
Eu armazeno os pacotes em um arquivo temporário, e apos o ultimo pacote, eu finalizo o arquivo e mudo o nome para o arquivo .hex. a partir dai eu reseto o microcontrolador e preciso ler o arquivo hex do cartão para atualizar o firmware.

Alguem ja fez isso alguma vez, atualizar remotamente o firmware do microcontrolador?

Qualquer sugestão é bem-vinda

OBS: não é possivel fazer um bootloader pela serial, porque a rede 485 à qual o equipamento está conectado não permite.
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Mensagempor EDSONCAN » 23 Set 2009 07:22

Em atualização remota na verdade o que fiz foram 3 blocos:
1 bloco fixo inicial que:
- gerencia por qual dos dois blocos restantes sera dado a continuação de carga do programa em funçao do numero da revisão e da validação do bloco.
- grava a atualização, removendo a revisão mais antiga.

O problema é que isso consome muita memoria, mas sempre tera um bloco valido.

Quanto as interrupções elas apontam para areas fixas dentro do bloco 2 e 3 em função de uma variavel do bloco 1 que define se é bloco 2 ou 3.
Enrolado isso.
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor fabim » 23 Set 2009 07:44

dreher, estou estranhando sua dúvida.
Que eu saiba, a maioria das pessoas aprendem a dar o boot no começo,
Das aulas de informatica..

porque tanta dúvida ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor dreher » 24 Set 2009 10:09

Fabim, o que eu quero fazer é atualizar o firmware remotamente. por isso o Bootloader, nele eu comparo se a versão que eu tenho no arquivo no MMC é mais recente que a versão que eu tenho no microcontrolador.

EDSONCAN, isso infelizmente não vai ser possivel, pela quantidade de memoria que eu tenho disponivel.

Mas eu vou tentar fazer algumas coisas aqui, conforme sugestão do pessoal do MikroC e posto o resultado para voces
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Mensagempor tcpipchip » 24 Set 2009 15:56

Teu microcontrolador ja consegue ler o cartao FAT 16 ?

Entao...poe a rotina de ler o cartao FAT16 no bootloader....ler o .hex, faça o checksum, grave instrução por instrução na FLASH do microcontrolador...e faça o teu reset...

Acredito que teu programa principal deve receber o .hex da nova versao do código certo, via RS485, e voce usa o cartao para armazena-lo temporiamente...

TCPIPCHIP
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x