Dois Firmwares

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Dois Firmwares

Mensagempor vtrx » 17 Ago 2014 11:12

Alguém sabe se é possível,usando Assembler ou C18,gravar 2 Firmwares independentes no mesmo PIC?
Seria o 18F2550 e atraves de um Jumper,selecionar qual Firmware vai dar Boot.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor barboza » 17 Ago 2014 12:40

vtrx escreveu:Alguém sabe se é possível,usando Assembler ou C18,gravar 2 Firmwares independentes no mesmo PIC?
Seria o 18F2550 e atraves de um Jumper,selecionar qual Firmware vai dar Boot.



Código: Selecionar todos
void main(void)
{
   if (jumper)
   {
       main1();
   }
   else
   {
      main2();
   }
}

void main1(void)
{
    // blablabla
}

void main2(void)
{
   // bloblobloblo

}
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Re: Dois Firmwares

Mensagempor tcpipchip » 18 Ago 2014 09:50

dual bootloader ?
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: Dois Firmwares

Mensagempor vtrx » 18 Ago 2014 10:36

dual bootloader ?

Alguma coisa assim,tipo por uma Dip seleciona qual Firmware o PIc vai carregar na inicialização.
Imagine dois Firmwares diferente mas usando a mesma placa,mas sem o usuario ter que regravar nada pois é um usuario comum que só tem que plugar e utilizar o circuito.

void main(void)
{
if (jumper)
{
main1();
}
else
{
main2();
}
}

void main1(void


O PIC usa a interface USB,esse método não fara uma confusão na enumeração do dispositivo?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor andre_luis » 18 Ago 2014 13:38

Esse método sugerido acima, pode ser problemático se o microcontrolador acusar falta de recursos ( RAM, Stack ), pois se forem programas muito diferentes - com variaveis distintas - isso pode ser um gargalo. Para contornar essa limitação há até uma maneira de minimizar isso ( realizando a nomeclatura de algumas das variaveis por diretiva Define ), mas á preciso saber mais detalhes do seu caso pra dar um palpite mais preciso.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Dois Firmwares

Mensagempor vtrx » 18 Ago 2014 16:01

É simples.
Tenho um dispositivo que precisa,via uma chave ou software via HID,ser selecionado ou como Keyboard ou Joystick e que tenha uma interface custom HID,de é onde vou setar variáveis na Eeprom interna.
Trocando em miudos,a interface é selecionável via um programa no PC que se comunica com o dispositivo via USB HID,mas ao mesmo tempo é um dispositivo de teclado ou Joystick e isso é selecionado com o programa no PC,mas ainda não tenho conhecimento de como montar o descritor para mais de um dispositivo,apenas conheço como enumerar um Keyborad e mouse na mesma interface.
Então tenho 3 alternativas.
1-Usar a interface serial do PIC para setar a eeprom interna mas isso vai encarecer o resultado além de ficar dependente de cabo USB/Serial.
2-Usar uma chave DIP para selecionar qual firmware Bootar mas isso envolve em algo quer não conheço.
3-Gerar 2 ou 3 interfaces HID,mas isso eu ainda não tenho conhecimento.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor vtrx » 18 Ago 2014 22:00

Fiz uma pesquisa rapida e verifiquei que preciso implementar um Feature Report no Firmware.
Alguem?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor vtrx » 22 Ago 2014 22:49

A 'solução' de 2 Firmwares eu ja descartei pois eu precisava de duas interfaces HID no mesmo PIC e ja consegui implementar,por ironia eu desenvolvi no CCS :mrgreen:
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor Djalma Toledo Rodrigues » 23 Ago 2014 15:18

Não é dois firmW

Firmw. é Fimw.

Pense em um Programa estruturado
Inicia testa é mause ?
Case 1
Else
case 2

mas, é tão simples que qualquer 'Jump da vida' da conta do recado

Dj
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Re: Dois Firmwares

Mensagempor Rodrigo_P_A » 23 Ago 2014 19:50

Djalma Não, não é. acredito que você entendeu errado ele precisa emular um teclado ou joystick e poder alterar a configuração sem regravar o PIC.
Essa solução que ele implementou foi bem legal. Conseguiu gerar um descriptor com uma interface hid para configurar sem tem que regravar ou trocar o chip e continuar emulando as interfaces que ele precisa.
Talvez por causa da pergunta deve ter gerado confusão.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: Dois Firmwares

Mensagempor vtrx » 23 Ago 2014 19:52

Duas interfaces USB HID não são enumerados pelo Windows com 'jumpers'.
O Rodrigo entendeu bem.
Dois firmwares era apelação minha.
Com essa alternativa minha interface fica diferenciada das outras opções onde você encomenda a teclas pré gravadas,assim o usuario apenas abre um programa proprio e escolhe sequencia,teclas etc e fica gravado na Eeprom do PIC em tempo real.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dois Firmwares

Mensagempor Maffeis » 24 Ago 2014 16:01

Voltando um pouco

a questão de memoria não poderia ser resolvido com os malloc da vida.

Soh iria alocar a memoria se o código fosse executado.

correto ou muito errado?
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: Dois Firmwares

Mensagempor Djalma Toledo Rodrigues » 25 Ago 2014 11:36

OK vtrx

Ciente, Rodrigo_P_A

Abraços
Dj
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Re: Dois Firmwares

Mensagempor Rodrigo_P_A » 25 Ago 2014 12:11

Maffeis escreveu:Voltando um pouco

a questão de memoria não poderia ser resolvido com os malloc da vida.

Soh iria alocar a memoria se o código fosse executado.

correto ou muito errado?


Seria se:
o PIC rodasse programas na RAM, o que pelo eu sei não roda.
Se você conseguisse compilar seu código independente da posição de endereço, ou seja tudo com endereço relativo.
Se você criasse um método de pegar o endereço de uso de RAM à partir de um valor pré-determinado.

Fora outros detalhes.... Eu já fiz essa brincadeira com os ARMs, e é bem legal.

Ou seja, acho meio impossível fazer isso com esses PICzinhos.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil


Voltar para PIC

Quem está online

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

x