SREC
SREC | |
---|---|
![]() | |
Расширение | .s19 , .s28 , .s37 , .s , .s1 , .s2 , .s3 , .sx , .srec или.mot |
Разработчик | Motorola |
Тип формата | формат файла |
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].
Пример
[править |править код]S00F000068656C6C6F202020202000003CS11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9S111003848656C6C6F20776F726C642E0A0042S5030003F9S9030000FC
Старт Тип записи Количество байт Адрес Данные Контрольная сумма
См. также
[править |править код]- Intel Hex — формат файла
Примечания
[править |править код]- ↑srec — Linux man pageАрхивировано 21 июня 2007 года.
- ↑MC68000 Family Programmer’s Reference ManualАрхивная копия от 24 сентября 2015 наWayback Machine Appendix C
Ссылки
[править |править код]- SRecord программы для работы с файлами формата SREC