- S-Record
-
S-Record (également connu sous le nom SREC ou S19) est un format de représentation de fichier binaire en ASCII[1] développé dans les années 1970 par la société Motorola. Il était utilisé alors pour la programmation du microprocesseur Motorola 6800. Le format textuel offre de nombreux avantages sur le format binaire : il peut être imprimé, inspecté ou modifié avec un éditeur de texte ordinaire. Ces fichiers sont/étaient utilisés pour le transfert de programmes vers les programmeur d'EPROM en communication série (RS-232).
Il est toujours utilisé en informatique embarquée ainsi que son concurrent, le format HEX (Intel) de la société Intel.
Sommaire
Format
Un fichier au format S-Record est constitué de lignes de caractères ASCII ('enregistrement') relativement courtes commençant par le caractère 'S' (d'où le nom), contenant des paires de caractères hexadécimaux et terminées par un retour à la ligne. Tous les nombres hexadécimaux sont en big endian.
La structure de chaque enregistrement est la suivante :
- S, le caractère débutant l'enregistrement
- X, un chiffre de 0 à 9 définissant le type d'enregistrement.
- NN, le nombre d'octets de données contenus dans l'enregistrement (en comptant l'adresse et la somme de contrôle). Il s'agit d'une paire de chiffres hexadécimaux.
- AAAA, AAAAAA ou AAAAAAAA, une adresse de 2, 3 ou 4 octets représentée par 4, 6 ou 8 chiffres hexadécimaux (big endian). Il s'agit de l'adresse mémoire du premier octet de donnée.
- XXXX..., une séquence de paires de chiffres hexadécimaux représentant les octets de données.
- NN, une somme de contrôle (en anglais, checksum) deux chiffres hexadécimaux qui représentent l'octet le moins significatif de la somme des octets représentant le nombre d'octets de données, l'adresse et les données.
Il existe 8 types d'enregistrements :
Enregistrement Description Octets d'adresse Séquence de données S0 En-tête de bloc 2 Oui S1 Séquence de données 2 Oui S2 Séquence de données 3 Oui S3 Séquence de données 4 Oui S5 Nombre d'enregistrements 2 Non S7 Fin de bloc 4 Non S8 Fin de bloc 3 Non S9 Fin de bloc 2 Non L'enregistrement S0 contient des données spécifiques à un constructeurs plutôt que des données binaires. Le nombre d'enregistrements contenu dans S5 se trouve dans le champ d'adresse de deux octets. Le champ d'adresse de S7, S8, or S9 peut contenir l'adresse de départ du programme[2].
Exemple
S00F000068656C6C6F202020202000003C S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026 S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9 S111003848656C6C6F20776F726C642E0A0042 S5030003F9 S9030000FC
Code de départ Type d'enregistrement Nombre d'octets Adresse Données Somme de contrôle
Voir aussi
- HEX (Intel) - Format équivalent de chez Intel.
Références
- (en) srec - Linux man page
- (en) MC68000 Family Programmer’s Reference Manual Appendix C
Liens externes
- SRecord is a collection of tools for manipulating SREC format files
Catégories :- Format de données numériques
- Système embarqué
Wikimedia Foundation. 2010.