HEX (Intel)
Aparença
Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
Aquest article o secció necessita millorar una traducció deficient. |
Tipus | format de fitxer |
---|---|
Extensió | hex |
Més informació | |
Wiki del format de fitxer | Intel_HEX |
Intel HEX és un format d'arxiu per a la programació de microcontroladors, EPROMs i altres circuits integrats. El format es va introduir als anys 70 i està entre els formats més vells amb aquesta finalitat. Consisteix en un arxiu de text les línies del qual contenen valors hexadecimals que codifiquen les dades, i el seu offset o adreça de memòria.
Els diferents tipus d'Intel Hex (8-bit, 16-bit i 32-bit) es diferencien en el seu endianness.
Cada línia consta dels següents elements:
- Codi d'inici, un símbol ':'
- Longitud del registre, dos dígits hexadecimals amb la quantitat de bytes del camp de dades. Usualment són 16 o 32 bytes.
- Adreça, quatre dígits hexadecimals en big endian, amb l'adreça d'inici de les dades. Per adreces majors a 0xFFFF s'empren altres tipus de registre.
- Tipus de registre, dos dígits hexadecimals, de 00 a 05, defineixen el tipus del camp de dades.
- Dades, conjunt de dígits hexadecimals que contenen les dades.
- Checksum, dos dígits hexadecimals amb el complement a dos de la suma de tots els camps anteriors, excepte el ':'.
Hi ha sis tipus de registres:
- 00, Dades, conté una adreça de 16 bits i les dades corresponents
- 01, Fi d'arxiu, no conté dades i ha d'estar al final de l'arxiu.
- 02, Adreça Estesa de Segment, adreça basi del segment, per accedir a adreces amb més de 16 bits. Aquest valor es desplaça 4 bits a l'esquerra (= multiplicar amb 16) i se sumeixi a l'adreça proporcionada pels registres de dades. El seu camp de longitud ha de valer 02 i el d'adreça 0000.
- 03, Adreça de Començament de Segment, especifica els valors inicials dels registres CS:IP, per a processadors 80x86. El camp d'adreça és 0000, longitud 04 i les dades contenen dos bytes per al segment de codi i altres dos pel instruction pointer
- 04, Adreça Lineal Estesa, permet dirigir-se a 32 bits de memòria en contenir els 16 bits superiors de l'adreça. El seu camp d'adreça val 0000 i el de longitud 02.
- 05, Començament d'adreça lineal. Conté 4 bytes que es carreguen en el registre EIP dels processadors 80386 i superiors. El seu camp d'adreça val 0000 i el de longitud 04.
Existeixen diversos sub-formats:
- I8HEX o INTEL 8, de 8 bits
- I16HEX o INTEL 16, de 16 bits. Empra registres 02 i 03, i la endianness de les dades pot variar.
- I32HEX o INTEL 32, de 32 bits. Agrega els registres 04 i 05.
Els processadors Motorola utilitzen un format similar, denominat SREC.
Exemple
[modifica]:10010000214601360121470136007EFE09D2190140 :100110002146017EB7C20001FF5F16002148011988 :10012000194E79234623965778239EDA3F01B2CAA7 :100130003F0156702B5E712B722B732146013421C7 :00000001FF
Codi d'inici Longitud Adreça Tipus de registre Dades Checksum
Enllaços externs
[modifica]- Descripció del format en PIC List
- Descripció del format
- Programa escrit en C que converteix de Intel a Hex, inclou el codi font
- SRecord, Eina GPL multi-plataforma per manipular arxius per EPROM