Buenas a todos,
Ayer coloque esta consulta en el subforo PROGRAMADORES (pero no sé cual es el más indicado, y la verdad es que me urge el asunto
).
El problema es que necesito identificar, con Checksum y CRC el programa que hay grabado en un PIC16F76. Para el checksum, no tengo problema, porque leo el PIC con mi programador, un ALL-11 de HI-LO Systems y su sofware asociado, y automaticamente me da el Checksum. Para el CRC, se complica el asunto, hasta ahora salvaba a un archivo binario el programa leido y calculaba el CRC de ese archivo con un programa llamado WINHEX. Pero recientemente, me he dado cuenta que el software del programador guarda en el binario, por defecto, todo el buffer del programador (desde la dirección 0000 hasta la 4FFF) y que el PIC16F76 solo tiene 8K de memoria FLASH (esto sería desde la dirección 0000 hasta la 1FFF, como así tambien lo indica el software del programador).
Por otro lado, creo que la familia 16F7X utiliza words de 14 bits, por lo que no tengo ni idea hasta que dirección debo guardar los datos leidos para tener la seguridad de que estoy calculando el CRC del programa (solo la memoria FLASH) grabado en el PIC (ni un dato más ni un dato menos, porque afectaria al cálculo del CRC). Según mis calculos podría ser: Memoria FLASH = 8K (words) x 14 bits/word = 8192 x 14 = 114.688 bits : 8 bit/word (que parece que es lo que guarda el programador) = 14.336 words = 14K (desde la dirección 0000 hasta la 3800).
Comentaros, también, que el programador que utilizo trabaja con words de 8 bits (o sea bytes).
¿Son correctos mis cálculos?¿hasta que dirección debería guardar para calcular el CRC solamente de lo que haya en la FLASH?
Un saludo y gracias.