SREC
El formato Motorola S-record codifica datos binarios en texto ASCII. Sus ventajas sobre un archivo binario son su facilidad de edición con un editor de texto y la presencia de una suma de verificación para detectar archivos corruptos.[1] El formato de archivo también se conoce como SRECORD, SREC, S19, S28 o S37.
S-record | ||
---|---|---|
Desarrollador | ||
Motorola | ||
Información general | ||
Extensión de archivo |
.s, .s1, .s2, .s3, .s19, .s28, .s37, .srec, .sx, .mot | |
Formato abierto | ||
Se creó en los años '70 para el procesador Motorola 6800. Es usado por herramientas de programación para codificar datos binarios, generalmente ejecutables, para procesadores embebidos.
Un formato similar, denominado Intel HEX, se usa más comúnmente con procesadores Intel.
Formato
Un archivo SREC consiste de registros. Los números hexadecimales están en formato big endian. La estructura de un registro es la siguiente:
- Código de inicio, un carácter S.
- Tipo de registro, un dígito de 0 a 9, especifica el tipo de registro.
- Largo, dos dígitos hexadecimales con la cantidad de bytes (pares de dígitos hexadecimales) que siguen.
- Dirección, cuatro, seis u ocho dígitos hexadecimales, según el tipo de registro.
- Datos, 2n dígitos hexadecimales codifican n bytes de datos.
- Checksum, dos dígitos hexadecimales con el byte menos significativo del complemento a uno de la suma de los campos largo, dirección y datos.
Hay ocho tipos de registros:[2]
- S0: El campo de dirección contiene ceros (0x0000). El campo de datos contiene los siguientes subcampos:
Nombre | Bytes | Descripción |
---|---|---|
mname | 20 | Nombre del módulo |
ver | 2 | Versión (hexadecimal) |
rev | 2 | Revisión (hexadecimal) |
description | 0-36 | Comentario |
- S1, S2 y S3: Su campo de datos contiene información a cargar en memoria. Los registros S1, S2 y S3 tienen campos de dirección de 4, 6 y 8 dígitos hex respectivamente.
- S5: No contiene datos. Su campo de dirección, de cuatro dígitos hex, indica la cuenta de registros S1, S2 y S3 transmitidos.
- S7, S8 y S9: No contienen datos. Su campo de dirección indica dónde comienza la ejecución, y tiene 8, 6 o 4 dígitos hex respectivamente.
Ejemplo
S00F000068656C6C6F202020202000003C S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026 S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9 S111003848656C6C6F20776F726C642E0A0042 S5030003F9 S9030000FC
Código de inicio Tipo Largo Dirección Datos Checksum
Véase también
- Intel HEX - File format
Enlaces externos
- SRecord es una suite de herramientas para manipular archivos SREC