- HEX (Intel)
-
HEX (Intel) est un format de fichier pour prendre en charge de l'information binaire pour des applications comme programmer des Microcontrôleurs, des EEPROM et d'autres composants programmables. C'est un des formats les plus anciens pour cette utilisation, étant utilisé depuis les années 1970. [citation nécessaire]
Format
Le format est un Fichier texte, avec chaque ligne contenant des valeurs hexadécimales encodée avec une conversion binaire vers le texte ainsi que l'adresse absolue ou l'adresse décalée. Tout ceci mérite quelques explications.
Le format peut être décrit comme un ensemble de lignes de texte. Chaque ligne respecte la syntaxe suivante :
:BBAAAATTHHHHHH.....HHHHCC
où
- BB est le nombre d'octets de la ligne
- AAAA est l'adresse absolue (ou relative) du début de la ligne
- TT est le champ spécifiant le type
- CC est le bit de checksum.
Il y a six valeurs possibles pour le champ de type :
- 00, données, contient les données et l'adresse 16 bit.
- 01, Fin du fichier, pour terminer le fichier. Pas de données après ce champ. Doit être la dernière ligne du fichier et donc ce champ n'est permis qu'une seule fois par fichier. Usuellement ':00000001FF'. Originellement End Of File record peut contenir une adresse de départ pour le programme devant être chargé, e.g. :00AB2F0125 ferait un saut à l'adresse AB2F. C'était utile quand les programmes étaient chargés par des cartes perforées.
- 02, champ d'adresse étendue, permet de définir l'adresse de base du segment. Utilisé quand une adresse 16 bits n'est pas suffisante, et ressemble au mode d'adressage du 80x86. L'adresse spécifiée par le champ 02 est multipliée par 16 (décalée de 4 bits vers la gauche) et additionnée aux adresse contenues dans les champ de type 00. Cela permet d'adresser 1 Méga octet. Si le champ d'adresse correspondant est 0000, et le nombre d'octets est 02 (le segment est 16 bits). L'octet hexadécimal du segment est toujours 0.
- 03, Start Segment Address Record. Pour les processeurs 80x86, il spécifie le contenu initial des registres CS:IP. Le champ d'adresse est alors 0000, ne nombre d'octets est 04, les deux premiers octets sont la valeur de CS, et les deux suivants la valeur de IP.
- 04, Extended Linear Address Record, autorise un mode d'adressage sur 32 bits. Le champ d'adresse AAAA est 0000, le champ nombre d'octets BB est 02. Les deux octets présents représentent les 16 bits de poids fort des adresses 32, quand ils sont combinés avec le type TT à 00.
- 05, Start Linear Address Record. Le champ d'adresse AAAA est 0000, le champ nombre d'octets BB est 04. Les 4 octets de données représentent la valeur 32-bit chargée dans le registre EIP du 80386 et processeurs suivants.
On rencontre divers sous-formats :
- I8HEX ou INTEL 8, format 8 bit.
- I16HEX or INTEL 16, format 16 bit. Permet l'usage des champs TT de 02 ou 03.
- I32HEX or INTEL 32, format 32 bit. Permet l'usage des champs TT de 04 ou 05.
Exemple
:10010000214601360121470136007EFE09D2190140 :100110002146017EB7C20001FF5F16002148011988 :10012000194E79234623965778239EDA3F01B2CAA7 :100130003F0156702B5E712B722B732146013421C7 :00000001FF
Code de départ Nombre d'octets Adresse type de champ Données Checksum
Voir aussi
- Le format S-Record de Motorolla
Catégories :- Micro-électronique
- Programmation informatique
- Format de données numériques
Wikimedia Foundation. 2010.