Меню
Главная
Случайная статья
Настройки
|
SREC — формат текстового ASCII файла, разработанный фирмой Motorola для хранения двоичных данных, также иногда называется Motorola S-record или S19. Формат имеет ряд преимуществ по сравнению с бинарными форматами. ASCII-файлы можно изменять с помощью текстового редактора. Кроме того, каждая запись содержит контрольную сумму, позволяющую выявить ошибки, которые были допущены во время передачи данных[1].
Этот формат был разработан в 1970 году для процессора Motorola 6800 и используется многими компиляторами как конечный результат работы, особенно у компиляторов для встраиваемых систем.
Аналогичное кодирование, со слегка измененным форматом ASCII файла, называется Intel Hex и используется для процессоров Intel.
Содержание
Формат
SREC файл состоит из записей, представляющих собой ASCII символы. Все шестнадцатеричные (Hex) числа записаны в виде старший байт слева. Записи имеют следующую структуру:
- Старт, один символ S.
- Тип записи, одна цифра, 0 до 9, определяет тип поля данных.
- Количество байт, две шестнадцатеричных цифры, указывающие количество байт в оставшейся части записи (адрес, поле данных, контрольная сумма).
- Адрес, четыре, шесть или восемь шестнадцатеричных цифр, определяющих начальный адрес блока данных этой записи в памяти.
- Данные, двоичные данные, закодированные шестнадцатеричными числами длиной n байт.
- Контрольная сумма, две шестнадцатеричных цифры, дополняет до 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
Старт
См. также
Примечания
- srec — Linux man page Архивировано 21 июня 2007 года.
- MC68000 Family Programmer’s Reference Manual Архивная копия от 24 сентября 2015 на Wayback Machine Appendix C
Ссылки- SRecord программы для работы с файлами формата SREC
|
|