Documente Academic
Documente Profesional
Documente Cultură
Intel HEX is a file format for conveying binary information for applications like
programming microcontrollers, EPROMs, and other kinds of chips. It is one of the
oldest file formats available for this purpose, having been in use since the 1970s.
Formato
El formato es un archivo de texto, con cada línea conteniendo una secuencia de datos y
su desplazamiento de inicio o la dirección absoluta de codificación de valores
hexadecimales.
Hay tres tipos de formato Intel HEX: 8 bits, 16 bits y 32 bits. Se distinguen por su
orden de byte.
1. Start code (Código de Inicio), un carácter, un signo de dos puntos de ASCII ': '.
2. Byte count (Número de bytes), dos dígitos hexadecimales, un número de bytes
(pares de dígitos hexadecimales) en el campo de datos. 16 (0 x 10) o 32 bytes (0
x 20) de datos son los valores de compromiso habitual entre la longitud de la
línea y la dirección de sobrecarga.
3. Address (Dirección), cuatro dígitos hexadecimales, una dirección de 16 bits del
comienzo de la posición de memoria para los datos. Se limita a 64 kilobytes, el
límite es trabajando al ir especificando bits altos a través de los tipos de registros
adicionales. Esta dirección es big endian.
4. Record type (Tipo de registro), dos dígitos hexadecimales, 00 a 05, para
definir el tipo del campo de datos.
5. Data (Datos), una secuencia de n bytes de los datos en sí mismos, representados
por 2n dígitos hexadecimales.
6. Checksum, two hex digits - the least significant byte of the two's complement of
the sum of the values of all fields except fields 1 and 6 (Start code ":" byte and
two hex digits of the Checksum). It is calculated by adding together the hex-
encoded bytes (hex digit pairs), then leaving only the LSB of the result, and
making a 2's complement (either by subtracting the byte from 0x100, or
inverting it by XOR-ing with 0xFF and adding 0x01). If you are not working
with 8-bit variables, you must suppress the overflow by AND-ing the result with
0xFF. The overflow may occur since both 0x100-0 and (0x00 XOR 0xFF)+1
equal 0x100. If the checksum is correctly calculated, adding all the bytes (the
Byte count, both bytes in Address, the Record type, each Data byte and the
Checksum) together will always result in a value wherein the least significant
byte is zero (0x00).
7. Cheksum (Suma de comprobación), dos dígitos hexadecimales: el byte menos
significativo de complemento a dos de la suma de los valores de todos los
campos excepto los campos 1 y 6 de hexadecimal (código de inicio ":" byte y
dos dígitos hexadecimales de la suma de comprobación). Se calcula sumando los
bytes codificados en hexadecimal (pares de dígitos hexadecimales), a
continuación, dejando sólo la LSB del resultado, y haciendo complemento de 2
(ya sea por restar el byte de 0 x 100, o invertirlo por XOR-ing con 0xFF y 0 x 01
de agregar). Si no estás trabajando con variables de 8 bits, se debe suprimir el
desbordamiento por AND-ing el resultado con 0xFF. El desbordamiento puede
producirse desde ambos 0 x 100-0 y (0 x 00 XOR 0xFF)+ iguala 10 x 100. Si se
calcula correctamente la suma de comprobación, sumando todos los bytes (el
recuento de byte, ambos bytes en dirección, tipo de registro, cada byte de datos y
la suma de comprobación) siempre producirá un valor en la que el byte menos
significativo es cero (0 x 00).
Por ejemplo, sea :0300300002337A1E
03 + 00 + 30 + 00 + 02 + 33 + 7A = E2, su complemento a 2's es 1E