Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_kt.docx
Скачиваний:
203
Добавлен:
09.02.2015
Размер:
667.14 Кб
Скачать

22. Форматы шестнадцатеричных файлов.

Intel HEX — формат файла, предназначенного для представления произвольных двоичных данных в текстовом виде. Файл обычно имеет расширение HEX (hexadecimal). Встречаются две модификации: intel-standart и intel-extended. Intel-standart поддерживает только 16 бит адрес (до 64 кБайт). Intel-extended имеет расширенный список типов записей и 32-бит адрес.

Достоинством формата (в отличие от простого двоичного) является возможность указывать только определенные области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.

Файл состоит из текстовых ASCII строк. Каждая строка представляет собой одну запись. Каждая запись начинается с двоеточия (:), после которого идет набор шестнадцатеричных цифркратныхбайту:

-Начало записи (:).

-Количество байтданных, содержащихся в этой записи. Занимает один байт (две шестнадцатеричных цифры), что соответствует 0…255 вдесятичной системе.

-Начальный адрес блока записываемых данных — 2 байта. Этот адрес определяет абсолютное местоположение данных этой записи в двоичном файле.

-Один байт, обозначающий тип записи. Определены следующие типы записей:

-0 — запись содержит данные двоичного файла.

-1 — запись обозначает конец файла, данных не содержит. Имеет характерный вид «:00000001FF».

-2 — запись адреса сегмента (подробнее см.ниже).

-4 — запись расширенного адреса (подробнее см.ниже).

-Байты данных, которые требуется сохранить в EPROM (их число указывается в начале записи, от 0 до 255 байт).

-Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.

-Строка заканчивается стандартной парой CR/LF (0Dh 0Ah).

Запись адреса сегмента

Пример записи: :020000021000EC где:

-02 Количество байт данных

-0000 В этом типе записи всегда равно 0000

-02 Тип записи 02 (запись адреса сегмента).

-1000 Номер параграфа (реальный адрес будет равен 0x10000).

-EC Контрольная сумма

Запись расширенного адреса

Пример записи: : 0200000400FFFB где:

-02 Количество байт данных

-0000 Всегда равно 0

-04 Тип записи 04 (запись расширенного линейного адреса)

-00FF Старшее слово смещения адреса (0x00FF0000)

-FB Контрольная сумма

Пример одной записи данных: :10246200464C5549442050524F46494C4500464C33 где:

-10 Количество байт данных (16 байт)

-2462 Адрес памяти, куда будет помещена запись.

-00 Тип записи — данные.

-464C...464C Данные

-33 Контрольная сумма записи.

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

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

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

  1. Старт, один символ S.

  2. Тип записи, одна цифра, 0 до 9, определяет тип поля данных.

  3. Число байт, две шестнадцатеричных цифры, указывающие количества байт в оставшейся части записи (адрес, поле данных, контрольная сумма).

  4. Адрес, четыре, шесть или восемь шестнадцатеричных цифр определяющих начальный адрес блока данных этой записи в памяти.

  5. Данные, двоичные данные закодированные шестнадцатеричными числами длиной n байт.

  6. Контрольная сумма, два шестнадцатеричных числа, дополняет до FF сумму чисел полей: число байт, адреса и данных. Необходима для проверки целостности данных.

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

Пример записи: S00F000068656C6C6F202020202000003C

где: S Старт; 0Тип записи; 0F Количество байт

0000 Адрес; 68656C6C6F20202020200000 Данные

3C Контрольная сумма

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]