Atualização de firmware(bootloader)

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Atualização de firmware(bootloader)

Mensagempor baltazar » 20 Jan 2009 10:32

Olá senhores,

Estou desenvolvendo um projeto com um PIC18F4580 e quero atualizar o firmware em campo.

Meu bootloader funcionar perfeitamente, o problema é que não sei como escrever um software para enviar o .HEX para o PIC.

Estou utilizando outros softwares só para enviar o .HEX para o PIC, mas preciso ter isso implementado no meu código antes de liberar o equipamento para o cliente.

Alguém aí pode me ajudar?

A interface serial entre o PC e o PIC funciona perfeitamente!

O software está sendo desenvolvido em Delphi e utilizamos o TComPort para a comunicação serial.

Abraços e obrigado!
baltazar
Bit
 
Mensagens: 42
Registrado em: 10 Nov 2006 18:47

Mensagempor RobL » 20 Jan 2009 10:49

Não precisa escrever um soft para enviar um arquivo hex para o micro.
Use o Hyper terminal ou um monte de outros programas prontos na net similar a esse e até com mais recursos.
Pode até mesmo fazer um arquivo .bat.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor baltazar » 20 Jan 2009 10:54

Robl,

É através desses programas que estou fazendo a atualização do firmware atualmente, porém quero ter isso implementado como uma função do meu software de comunicação com o equipamento, assim o usuário não terá que abrir outro programa quando for atualizar o firmware, ele fará isso diretamente no próprio software de configuração que enviarei junto com o produto.

E é aí que estou agarrado, nunca implementei esse tipo de coisa...

Abraço!
baltazar
Bit
 
Mensagens: 42
Registrado em: 10 Nov 2006 18:47

Mensagempor RobL » 20 Jan 2009 15:03

RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor baltazar » 21 Jan 2009 07:55

Robl,

Ainda estou agarrado aqui, mas os links que vc passou me ajudaram em outro problema. Obrigado!rss

Achei que seria bem mais fácil encontrar informação sobre isso, mas já revirei o Google e até agora nada...

Vou continuar tentando aqui, assim que tiver uma novidade eu volto a postar...

Abraços!
baltazar
Bit
 
Mensagens: 42
Registrado em: 10 Nov 2006 18:47

Mensagempor RobL » 21 Jan 2009 11:37

Vamos lá.
1- Criar um protocolo, baseado no intel hex 8, para informar quantos bytes serão recebidos e o checksum.
2-Terá que abrir um arquivo para leitura, o .hex
3-Vai pegar os dados lido do .hex em uma variável e usar a função Write do Tcomport.
Essa variável poderá ser byte ou caractere.

Veja esse exemplo com TComPort
http://www.wimb.net/files/dld.php?app0011s.zip

Pagina com o exemplo:
http://www.wimb.net/index.php?s=delphi&page=11

Há algo mais interessante que o TComPort, o Synaser.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor baltazar » 05 Fev 2009 14:20

Resolvido!

Estudei melhor o código do bootloader que estou utilizando aqui e consegui implementar o mesmo protocolo no meu software.

Agora outra dúvida, sempre que quero atualizar o firmware, eu mando o PIC reinicializar(reset_cpu() no CCS), daí ele entre executando o bootloader, verifica o pino que eu estabeleci e entra na rotina de atualização ou não.

Pois bem, minha pergunta é, não teria saltar diretamente para a área de bootloader sem precisar reiniciar o microcontrolador?

Acredito que sim, mas não tenho idéia de como fazer, ou melhor, pra onde saltar...

Abraços e obrigado pela ajuda!
baltazar
Bit
 
Mensagens: 42
Registrado em: 10 Nov 2006 18:47


Voltar para PIC

Quem está online

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

cron

x