Intel HEX - Wikipedia, la enciclopedia libre [Link]
org/wiki/Intel_HEX
Intel HEX
De Wikipedia, la enciclopedia libre
Intel HEX es un formato de archivo para la programación de microcontroladores, EPROMs y otros circuitos
integrados. Datando de los años 70[cita requerida], está entre los formatos más viejos con esta finalidad.
Consiste en un archivo de texto cuyas líneas contienen valores hexadecimales que codifican los datos, y su
offset o dirección de memoria.
Los distintos tipos de Intel Hex (8-bit, 16-bit y 32-bit) se diferencian en su endianness.
Cada línea consta de los siguientes elementos:
1. Código de inicio, un símbolo ':'
2. Longitud del registro, dos dígitos hexadecimales con la cantidad de bytes del campo de datos.
Usualmente son 16 o 32 bytes.
3. Dirección, cuatro dígitos hexadecimales en big endian, con la dirección de inicio de los datos. Para
direcciones mayores a 0xFFFF se emplean otros tipos de registro.
4. Tipo de registro, dos dígitos hexadecimales, de 00 a 05, definen el tipo del campo de datos
5. Datos, duplas de dígitos hexadecimales que contienen los datos
6. Checksum, dos dígitos hexadecimales con el complemento a dos de la suma de todos los campos
anteriores, salvo el ':'.
Hay seis tipos de registros:
00, Datos, contiene una dirección de 16 bits y los datos correspondientes
01, Fin de archivo, no contiene datos y debe estar al final del archivo.
02, Dirección Extendida de Segmento, dirección base del segmento, para acceder a direcciones con
más de 16 bits. Este valor se desplaza 4 bits a la izquierda (= multiplicar con 16) y se suma a la
dirección proporcionada por los registros de datos. Su campo de longitud debe valer 02 y el de
dirección 0000.
03, Dirección de Comienzo de Segmento, especifica los valores iniciales de los registros CS:IP, para
procesadores 80x86. El campo de dirección es 0000, longitud 04 y los datos contienen dos bytes para
el segmento de código y otros dos para el instruction pointer
04, Dirección Lineal Extendida, permite dirigirse a 32 bits de memoria al contener los 16 bits
superiores de la dirección. Su campo de dirección vale 0000 y el de longitud 02.
05, Comienzo de Dirección Lineal. Contiene 4 bytes que se cargan en el registro EIP de los
procesadores 80386 y superiores. Su campo de dirección vale 0000 y el de longitud 04.
Existen varios sub-formatos:
I8HEX o INTEL 8, de 8 bits
I16HEX o INTEL 16, de 16 bits. Emplea registros 02 y 03, y la endianness de los datos puede variar.
I32HEX o INTEL 32, de 32 bits. Agrega los registros 04 y 05.
Los procesadores Motorola utilizan un formato similar, denominado SREC.
Ejemplo
:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
1 of 2 09/01/2011 12:00 PM
Intel HEX - Wikipedia, la enciclopedia libre [Link]
:00000001FF
Código de inicio
Longitud
Dirección
Tipo de registro
Datos
Checksum
Enlaces externos
Intel Hexadecimal Object File Format Specification 1988 (PDF) ([Link]
/[Link]?pid=4&id=25)
Descripción del formato en PIC List ([Link]
Descripción del formato ([Link]
SRecord ([Link] , Herramienta GPL multi-plataforma para manipular archivos
para EPROM
Binex ([Link] , conversor entre Intel HEX y binario.
Obtenido de «[Link]
Categoría: Sistemas embebidos
Esta página fue modificada por última vez el 1 sep 2011, a las 14:59.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; podrían ser
aplicables cláusulas adicionales. Lee los términos de uso para más información.
2 of 2 09/01/2011 12:00 PM