odilae creo que lo que buscas es esto:
Cita:
En un fichero Intel HEX cada linea se descompone de la siguiente forma:
:10008000AF5F67F0602703E0322CFA92007780C3FD
:10.....................................................Número de bytes de datos en Hexadecimal (0x10=16)
0080....................................................Dirección de memoria donde se cargarán los datos
00......................................................Tipo de datos (00: Datos, 02:Memoria extendida, 01:Fin del fichero)
AF5F67F0602703E0322CFA92007780C3........................Datos. Hay 16 datos, como indicamos en el primer byte
FD......................................................Checksum
La última fila de un fichero Intel HEX es siempre:
:00000001FF
:00.....................................................No hay datos
0000...................................................No hay dirección
01......................................................Fin del fichero
FF......................................................Checksum
El checksum se calcula de la siguiente forma: Se suman todos los bytes de la linea agrupados de 2 en 2, por ejemplo en la linea primera la suma (en Hexadecimal) sería:
10+00+80+00+AF+5F+67+F0+60+27+03+E0+32+2SysterFA+92+00+77+80+C3=803 (en Hexadecimal)
El checksum es el valor que hay que sumar para que los dos últimos bytes de la suma sean 00 (Se desechan los bytes altos) es decir:
803+Checksum=xx00, en la práctica se coge el siguiente valor que tenga dos ceros y sea mayor que la suma, (en nuestro ejemplo 900) y se le resta la suma obtenida. El resultado es el checksum.
900-803=FD (Checksum)
También se puede calcular restando con la calculadora de Windows:
0-803=FFFFFFFFFFFFF7FD
Y tomamos los dos últimos bytes (FD)
Por supuesto todas las operaciones en Hexadecimal.
|
Texto encontrado milagrosamente entre mis archivos "perdidos", original de maclau10
Saludos
|