SREC

Pause

SREC — формат текстового ASCII файла, разработанный фирмой Motorola для хранения двоичных данных, также иногда называется Motorola S-record или S19. Формат имеет ряд преимуществ по сравнению с бинарными форматами. ASCII-файлы можно изменять с помощью текстового редактора. Кроме того, каждая запись содержит контрольную сумму, позволяющую выявить ошибки, которые были допущены во время передачи данных[1].

Этот формат был разработан в 1970 году для процессора Motorola 6800 и используется многими компиляторами как конечный результат работы, особенно у компиляторов для встраиваемых систем.

Аналогичное кодирование, со слегка измененным форматом ASCII файла, называется Intel Hex и используется для процессоров Intel.

Общие сведения
SREC
Расширение .s19, .s28, .s37, .s, .s1, .s2, .s3, .sx, .srec или .mot
Разработчик Motorola
Тип формата формат файла

Формат

SREC файл состоит из записей, представляющих собой ASCII символы. Все шестнадцатеричные (Hex) числа записаны в виде старший байт слева. Записи имеют следующую структуру:

  1. Старт, один символ S.
  2. Тип записи, одна цифра, 0 до 9, определяет тип поля данных.
  3. Количество байт, две шестнадцатеричных цифры, указывающие количество байт в оставшейся части записи (адрес, поле данных, контрольная сумма).
  4. Адрес, четыре, шесть или восемь шестнадцатеричных цифр, определяющих начальный адрес блока данных этой записи в памяти.
  5. Данные, двоичные данные, закодированные шестнадцатеричными числами длиной n байт.
  6. Контрольная сумма, две шестнадцатеричных цифры, дополняет до FF сумму чисел полей: количество байт, адрес и данных. Необходима для проверки целостности данных.

Есть восемь типов записей, которые перечислены ниже:

Запись Тип Байтов в адресе Дальнейшие данные
S0 Заголовок блока 2 Есть
S1 Последовательность данных 2 Есть
S2 Последовательность данных 3 Есть
S3 Последовательность данных 4 Есть
S5 Количество записей 2 Нет
S7 Конец блока 4 Нет
S8 Конец блока 3 Нет
S9 Конец блока 2 Нет

Запись типа S0 содержит данные разработчика программы и не имеет отношения к программному коду. Количество записей хранится в 2-х байтном поле адреса записи типа S5. Поля адреса записей типа S7, S8, или S9 могут содержать начальные адреса программы[2].

Пример

S00F000068656C6C6F202020202000003C
S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026
S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9
S111003848656C6C6F20776F726C642E0A0042
S5030003F9
S9030000FC

     Старт      Тип записи      Количество байт      Адрес      Данные      Контрольная сумма

См. также

Примечания

Ссылки

  • SRecord программы для работы с файлами формата SREC

Дополнительно по теме

Категории

Pause