Décrypter un fichier INTELHEX.

Ce format de fichier est l'un des plus usité pour l'application de microcontroleurs. Il est généralement terminé par l'extension ".HEX". Si vous jetez un oeil à l'intérieur d'un fichier ".hex" ou ".obj", vous obtiendrez quelque chose qui ressemble à ce qui suit :
:10000000A601A701AB018E288C00030883128D0086
:100010000B11AB0A0D0883008C0E0C0E0900A80111
:10002000A201A3011E081F04031908001F082106CE
:0A04F000A40B782AA50B782A080057
:02400E00F13F80
:00000001FF
Toute l'information nécessaire au microcontrolleur est située dans ce fichier. On y trouve le code proprement dit du programme ainsi que les adresses où doivent être stockées les instructions du programme. De plus, vous remarquerez qu'aucune information de type symbolique ( cette information est généralement utilisée par un debugger ou un émulateur) n'est contenue dans le fichier.
Chaque ligne est divisée en un certain nombre de champs qui sont utilisés par le programmateur pour stocker les informations au bon endroit. Ces champs sont définis par colonnes et sont décrits dans le tableau ci-dessous :
Description du format INTELHEX
Colonnes Identification Commentaires
1 Début de ligne Toujours ":"
2-3 Nombre bytes dans la ligne Nombre de bytes à charger dans la ligne
4-7 Adresse de début Adresse où on commence à stocker les données de la ligne
8-9 Type de données "00" pour les données-"01" pour la fin de fichier
10-11 1ere donnée premier byte de donnée en hexa
12-13 second byte second byte de donnée en hexa
14... suite des données bytes additionnels du programme
End-2 Checksum Somme de la ligne & 0x0FF=0