SREC

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

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 un checksum para detectar archivos corruptos.[1]

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[editar]

Un archivo SREC consiste de registros. Los números hexadecimales están en formato big endian. La estructura de un registro es la siguiente:

  1. Código de inicio, un carácter S.
  2. Tipo de registro, un dígito de 0 a 9, especifica el tipo de registro.
  3. Largo, dos dígitos hexadecimales con la cantidad de bytes (pares de dígitos hexadecimales) que siguen.
  4. Dirección, cuatro, seis u ocho dígitos hexadecimales, según el tipo de registro.
  5. Datos, 2n dígitos hexadecimales codifican n bytes de datos.
  6. 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 sub-campos:
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[editar]

S00F000068656C6C6F202020202000003C
S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026
S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9
S111003848656C6C6F20776F726C642E0A0042
S5030003F9
S9030000FC

     Código de inicio      Tipo      Largo      Dirección      Datos      Checksum

Véase también[editar]

Referencias[editar]

  1. srec - Linux man page
  2. http://www.amelek.gda.pl/avr/uisp/srecord.htm

Enlaces externos[editar]

  • SRecord es una suite de herramientas para manipular archivos SREC