Gravar senhas na Flash HCS08

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

Gravar senhas na Flash HCS08

Mensagempor gobatto » 12 Abr 2010 23:39

Boa noite pessoal!

Estou com um pequano problema e gostaria que alguem me ajudasse.

Tenho um desafio em ter de gravar 100 senhas de 16bits na flash do HCS08. Quanto o processo de gravar e separar o dado de 16bits em 2 de 8 bits... sem problemas.

O que nao estou conseguindo... e simplesmente o fato de arranjar uma logica em poder gravar essas 100 senhas na flash e, o mais importante, poder comparar a senha digitada com a senha gravada em flash.

Se nao me entenderam, explico melhor. Tenho o encoder da holtek (HT12E), este é um encoder de 2^12, o qual esta num transmissor remoto.

Logo neste IC pode-se enviar endereco e dado, estou trabalhando somente com dado. Mas o dado eh codificado tao somente pelo usuario, por este motivo preciso fazer com que o receptor, na opcao cadastrar, receba esse dado e grave na flash, para nao perde-lo ao faltar energia.

Entao, sao 100 senhas que o micro vai ter de armazenar (isso somente no modo prog por exemplo) e quando receber novamente essa mesma senha, vai ter de comparar com o que esta na flash e se caso tiver, liberar a porta.

Sei que parece algo simples, mas eu nao estou conseguindo achar o caminho!!!

Agradeco se alguem puder me ajudar.
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor KrafT » 13 Abr 2010 08:05

Os HCS08 não podem rodar o programa na flash e gravar nela simultaneamente. Logo, para poder gravar na flash tem que jogar o programa para a RAM, o que pode ser feito por rotinas prontas, como o doonstack.asm:

http://www.freescale.com/files/microcon ... AN3942.pdf

Eu tentei utilizar esse recurso, mas eventualmente o CRC-16 que utilizei para validar esses dados não batia, então por falta de tempo para ver aonde estava o erro, passei a utilizar um EEPROM I2C externa.

Como o documento indicado acima é de 12/2009 talvez voce não passe pelos mesmos problemas que eu.

No item 3.1 tem um exemplo para o JM60, talvez voce deva ajustar a inicialização para que o clock da flash fique na faixa permitida (150 a 200kHz).
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor gobatto » 13 Abr 2010 08:19

Ola Kraft,

Na verdade nao tenho problemas com a gravacao na flash, pois antes de iniciar uma nova gravacao na flash eu faco um reset.. depois inicio a gravacao e tb uso o doonstack.asm e nao tive problemas ate agora.

Mas a minha questao, eh de como funciona a logica para comparar o dado recebido com o que esta na flash (ja gravado)? Ou seja, digamos que eu ja tenho arquivado as 100 senhas, desde o endereco E000 ate E200, isso significa que ja ocupei todo o espaco destinado para as 100 senhas.

Pois bem, agora o usuario vai entrar com senha, eh onde estou me perdendo, comparar a senha digitada com o que esta na flash.
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor KrafT » 13 Abr 2010 09:49

Bom se fosse em C eu faria um FOR varrendo toda e Flash das senhas e comparando com a variavel desejada. Em asm vale a mesma lógica.

Caso ache um registro igual retorna 1 e se não retorna 0.

Voce tem a senha do usuario em uma variavel já?

E ler a Flash voce consegue?
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor gobatto » 13 Abr 2010 10:22

Puxa... essa eh uma boa ideia Kraft... veja so..as vezes coisas sao tao simples que nos mesmos complicamos..,neste caso eu compliquei.

Referente as sua duas perguntas:
1- sobre a senha do usuario: a senha digita (ou as senhas) vou armazena-las em uma variavel sim, para depois varrer a memoria e comparar.

2- para ler a flash, consigo ler sem problemas, so nao testei ainda na questao de varrer toda a faixa destinada para armazenagem das senhas.
Nao testei, pelo fato de estar conseguindo achar a logica correta, ou melhor, fazer um software legivel e que nao produzisse um codigo muito grande.

Eu fiz um software, mas o codigo que ele gerou foi de 6k, isso eh absurdo, pois se colocar no QG8 nao teria problema, mas no QD4 seria um grande problema. E outra, o software ficou muito ruim na questao de legibilidade.

No entanto, para torna-lo mais legivel e pratico separei ele todo por arquivos, assim faco uso de variaveis extern e chamadas de funcoes externas tb. Isso fica bem legivel e otimizo o codigo.
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor fabim » 13 Abr 2010 10:41

gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B
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 KrafT » 13 Abr 2010 10:49

Poisé.. O software está em C ou em asm?
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor gobatto » 13 Abr 2010 11:47

Ola Fabim!

Concordo com voce que ja esta velho,mas ainda eh muito utilizado. Referente ao HT6P ele eh 2^24... TAMBEM VOU USAR ESTE...

Fabim se voce puder me passar o programa em C lhe agradeco, pois ja procurei no forum e nao encontrei.

Ficaria grato mesmo se conseguisse para mim, depois eu adapto para o HCS sem problemas.

[]'s
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor gobatto » 13 Abr 2010 11:50

Kraft!

O software esta todo em C!
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor gobatto » 14 Abr 2010 11:57

fabim escreveu:gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B


Fabim,

verifiquei no forum do pic, mas nao encontrei o programa em C que tu me falaste. Apenas encontrei em asm, mas como faz muito tempo que nao trabalho com asm, nao consegui pegar a filosofia da coisa.

Se puderes consegui-lo para mim, voce pode me passar no meu e-mail!
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor msamsoniuk » 14 Abr 2010 14:16

no livro do fabio pereira de hc908 ou hcs08 nao tem isso nao? se nao me falha a memoria, eu fiz o meu gravador de flash no hc908 baseado no livro dele e lah ele ensina a apagar a flash toda ou blocos.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor gobatto » 14 Abr 2010 15:09

boa tarde Marcelo,

eh como eu postei no inicio... o problema nao eh a gravacao e nem como se faz a leitura do codigo, pois isso ja esta tudo pronto e funcionando muito bem obrigado.

A questao eh a logica para varrer a memoria e ver qual o proximo endereco onde sera gravado o novo codigo + logica para comparar codigo recebido com o codigo ja cadastrado.

E poder fazer tudo isso com um programa bem legivel e que tenha um codigo nao muito grande. Nao posso passar de 2K.
gobatto
Bit
 
Mensagens: 13
Registrado em: 22 Mai 2009 16:43
Localização: Bento Goncalves - Brasil

Mensagempor mastk » 14 Abr 2010 21:28

Ola gobatto, agora deixou a duvida mais clara, sim eh possivel fazer isso, mas se quer codigo pronto, por favor, se coloque no meu lugar e dos outros foristas, eh pedido ofensivo...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor fabim » 14 Abr 2010 21:55

gobatto escreveu:
fabim escreveu:gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B


Fabim,

verifiquei no forum do pic, mas nao encontrei o programa em C que tu me falaste. Apenas encontrei em asm, mas como faz muito tempo que nao trabalho com asm, nao consegui pegar a filosofia da coisa.

Se puderes consegui-lo para mim, voce pode me passar no meu e-mail!


áááá muléque sem vergonha, vem aqui que vou te curar com a havaiana de PAU. E logo te dou um jeito com o trabisseru de preda, eu disse predaaaaaaaaaaaaaaaaaaa.

http://www.asm51.eng.br/phpbb/viewtopic ... ght=ht6p20

Fala sério?@ tu não doi lá encima e procurou a junção de letras "HT6P20" né ?
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 mastk » 14 Abr 2010 22:39

Imagem
Fabim aos meus olhos :)

Ainda assim, ele quer uma rotina para gerenciar as senhas...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Próximo

Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

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

x