Для улучшения этой статьи желательно: |
Intel HEX — формат файла, предназначенного для представления произвольных двоичных данных в текстовом виде. По историческим причинам является стандартом де-факто при прошивке разнообразных микросхем с памятью (микроконтроллеров, ПЗУ, EEPROM и т. п.). Соответственно большинство инструментов подготовки образов прошивки (компиляторы, редакторы, просмотрщики и т. п.) умеют работать с этим форматом.
Файл обычно имеет расширение .hex
. Названия I8HEX, I16HEX и I32HEX иногда используются для определения набора записей, используемых в файле. I8HEX использует только записи с типами 00/01 (16-битная адресация), в I16HEX добавляются записи 02/03 (20-битная адресация), и в I32HEX добавляются записи 04/05 (32-битная адресация).
Достоинством формата (в отличие от простого двоичного) является возможность указывать только определенные области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.
Файл состоит из текстовых ASCII строк. Каждая строка представляет собой одну запись. Каждая запись начинается с двоеточия (:), после которого идет набор шестнадцатеричных цифр кратных байту:
Файл формата Intel HEX может состоять из любого количества записей. Каждая запись представляет собой ASCII-строку, состоящую из нескольких пар 16-ричных цифр. Строка должна начинаться с символа двоеточия и оканчиваться парой символов CR и LF.
Запись состоит из пяти полей следующего формата:
:LLAAAATTDD...CC
Каждая группа букв (LL, AAAA, TT и т. д.) представляет собой отдельное поле. Каждая буква — отдельную 16-ричную цифру (4 бита). Каждое поле состоит как минимум из двух 16-ричных цифр (один байт). Ниже представлена расшифровка полей записи:
Файл формата Intel HEХ может содержать записи для процессоров Intel 8086, которые определяют адрес сегмента (иначе говоря — номер параграфа, один параграф — это 16 байт). Если используется директива H167, то этот тип записи заменяет запись расширенного линейного адреса. Номер параграфа используется как смещение адреса для всех записей данных, следующих за этой записью. Смещение представляет собой сдвиг адреса на четыре бита влево. Например, смещение равное 0x1234 даст реальный адрес 0x12340.
Пример записи:
:020000021000EC
где:
Когда используется директива H167, файл формата Intel HEX возможно будет содержать записи расширенного линейного адреса. Этот тип записи определяет значения двух старших байт абсолютного адреса (биты 16-31). Эти два старших байта адреса будут применяться как смещение адреса для всех записей данных, следующих за этой записью.
Пример записи:
: 0200000400FFFB
где:
Файлы формата Intel HEX должны иметь запись Конца Файла (EOF).[источник не указан 1770 дней]
Пример записи:
:00000001FF
где:
:10010000214601360121470136007EFE09D2190140 :100110002146017EB7C20001FF5F16002148011988 :10012000194E79234623965778239EDA3F01B2CAA7 :100130003F0156702B5E712B722B732146013421C7 :00000001FF
Начало записи Количество байт данных в этой записи (строке) Адрес, по которому размещаются данные этой записи Тип записи Данные Контрольная сумма записи
Пример одной записи данных:
:10246200464C5549442050524F46494C4500464C33
где
:020000021000EC :10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93 :10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90 :10C22000F04EF05FF06CF07DCA0050C2F086F097DF :10C23000F04AF054BCF5204830592D02E018BB03F9 :020000020000FC :04000000FA00000200 :00000001FF
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .