Krasorion.ru

Упаковочные материалы

SREC

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

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

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

Содержание

Формат

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

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

См. также

Примечания

  1. srec — Linux man page
  2. MC68000 Family Programmer’s Reference Manual Appendix C

Ссылки

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

SREC.

© 2011–2023 krasorion.ru, Россия, Братск, ул. Ленинская 34, +7 (3953) 38-98-93