Página 1 de 1

Boot a partir do cartão de memória

MensagemEnviado: 22 Set 2009 17:42
por dreher
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.

MensagemEnviado: 23 Set 2009 07:22
por EDSONCAN
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

MensagemEnviado: 23 Set 2009 07:44
por fabim
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 ?

MensagemEnviado: 24 Set 2009 10:09
por dreher
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

MensagemEnviado: 24 Set 2009 15:56
por tcpipchip
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